<?php

return [
    'AD' => [
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
    ],
    'AE' => [
        '01' => 'AZ',
        '02' => 'AJ',
        '03' => 'DU',
        '04' => 'FU',
        '05' => 'RK',
        '06' => 'SH',
        '07' => 'UQ',
    ],
    'AF' => [
        '01' => 'BDS', // Badakhshan
        '02' => 'BDG', // Badghis
        '03' => 'BGL', // Baghlan
        '05' => 'BAM', // Bamian
        '06' => 'FRA', // Farah
        '07' => 'FYB', // Faryab
        '08' => 'GHA', // Ghazni
        '09' => 'GHO', // Ghowr
        '10' => 'HEL', // Helmand
        '11' => 'HER', // Herat
        '13' => 'KAB', // Kabol
        '14' => 'KAP', // Kapisa
        '17' => 'LOG', // Lowgar
        '18' => 'NAN', // Nangarhar
        '19' => 'NIM', // Nimruz
        '23' => 'KAN', // Kandahar
        '24' => 'KDZ', // Kondoz
        '26' => 'TAK', // Takhar
        '27' => 'WAR', // Vardak
        '28' => 'ZAB', // Zabol
        '29' => 'PKA', // Paktika
        '30' => 'BAL', // Balkh
        '31' => 'JOW', // Jowzjan
        '32' => 'SAM', // Samangan
        '33' => 'SAR', // Sar-e Pol
        '34' => 'KNR', // Konar
        '35' => 'LAG', // Laghman
        '36' => 'PIA', // Paktia
        '37' => 'KHO', // Khowst
        '38' => 'NUR', // Nurestan
        '39' => 'URU', // Oruzgan
        '40' => 'PAR', // Parvan
        '41' => 'DAY', // Daykondi
        '42' => 'PAN', // Panjshir
    ],
    'AG' => [
        '01' => '10',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
        '09' => '11',
    ],
    'AL' => [
        '40' => '01',
        '41' => '09',
        '42' => '02',
        '43' => '03',
        '44' => '04',
        '45' => '05',
        '46' => '06',
        '47' => '07',
        '48' => '08',
        '49' => '10',
        '50' => '11',
        '51' => '12',
    ],
    'AM' => [
        '01' => 'AG',
        '02' => 'AR',
        '03' => 'AV',
        '04' => 'GR',
        '05' => 'KT',
        '06' => 'LO',
        '07' => 'SH',
        '08' => 'SU',
        '09' => 'TV',
        '10' => 'VD',
        '11' => 'ER',
    ],
    'AO' => [
        '01' => 'BGU',
        '02' => 'BIE',
        '03' => 'CAB',
        '04' => 'CCU',
        '05' => 'CNO',
        '06' => 'CUS',
        '07' => 'CNN',
        '08' => 'HUA',
        '09' => 'HUI',
        '12' => 'MAL',
        '13' => 'NAM',
        '14' => 'MOX',
        '15' => 'UIG',
        '16' => 'ZAI',
        '17' => 'LNO',
        '18' => 'LSU',
        '19' => 'BGO',
        '20' => 'LUA',
    ],
    'AR' => [
        '01' => 'B',
        '02' => 'K',
        '03' => 'H',
        '04' => 'U',
        '05' => 'X',
        '06' => 'W',
        '07' => 'C',
        '08' => 'E',
        '09' => 'P',
        '10' => 'Y',
        '11' => 'L',
        '12' => 'F',
        '13' => 'M',
        '14' => 'N',
        '15' => 'Q',
        '16' => 'R',
        '17' => 'A',
        '18' => 'J',
        '19' => 'D',
        '20' => 'Z',
        '21' => 'S',
        '22' => 'G',
        '23' => 'V',
        '24' => 'T',
    ],
    'AT' => [
        '01' => '1',
        '02' => '2',
        '03' => '3',
        '04' => '4',
        '05' => '5',
        '06' => '6',
        '07' => '7',
        '08' => '8',
        '09' => '9',
    ],
    'AU' => [
        '01' => 'ACT',
        '02' => 'NSW',
        '03' => 'NT',
        '04' => 'QLD',
        '05' => 'SA',
        '06' => 'TAS',
        '07' => 'VIC',
        '08' => 'WA',
    ],
    'AZ' => [
        '01' => 'ABS', // Abseron
        '02' => 'AGC', // Agcabadi
        '03' => 'AGM', // Agdam
        '04' => 'AGS', // Agdas
        '05' => 'AGA', // Agstafa
        '06' => 'AGU', // Agsu
        '07' => '', // Ali Bayramli
        '08' => 'AST', // Astara
        '09' => 'BA', // Baki
        '10' => 'BAL', // Balakan
        '11' => 'BAR', // Barda
        '12' => 'BEY', // Beylaqan
        '13' => 'BIL', // Bilasuvar
        '14' => 'CAB', // Cabrayil
        '15' => 'CAL', // Calilabad
        '16' => 'DAS', // Daskasan
        '17' => '', // Davaci
        '18' => 'FUZ', // Fuzuli
        '19' => 'GAD', // Gadabay
        '20' => 'GA', // Ganca
        '21' => 'GOR', // Goranboy
        '22' => 'GOY', // Goycay
        '23' => 'HAC', // Haciqabul
        '24' => 'IMI', // Imisli
        '25' => 'ISM', // Ismayilli
        '26' => 'KAL', // Kalbacar
        '27' => 'KUR', // Kurdamir
        '28' => 'LAC', // Lacin
        '29' => 'LAN', // Lankaran
        '30' => 'LA', // Lankaran city
        '31' => 'LER', // Lerik
        '32' => 'MAS', // Masalli
        '33' => 'MI', // Mingacevir
        '34' => 'NA', // Naftalan
        '35' => 'NV', // Naxcivan
        '36' => 'NEF', // Neftcala
        '37' => 'OGU', // Oguz
        '38' => 'QAB', // Qabala
        '39' => 'QAX', // Qax
        '40' => 'QAZ', // Qazax
        '41' => 'QOB', // Qobustan
        '42' => 'QBA', // Quba
        '43' => 'QBI', // Qubadli
        '44' => 'QUS', // Qusar
        '45' => 'SAT', // Saatli
        '46' => 'SAB', // Sabirabad
        '47' => 'SAK', // Saki
        '48' => 'SA', // Saki
        '49' => 'SAL', // Salyan
        '50' => 'SMI', // Samaxi
        '51' => 'SKR', // Samkir
        '52' => 'SMX', // Samux
        '53' => 'SIY', // Siyazan
        '54' => 'SM', // Sumqayit
        '55' => 'SUS', // Susa
        '56' => 'SUS', // Susa  City Şuşa used to have SS, but was deleted in 2011. See https://en.wikipedia.org/wiki/ISO_3166-2:AZ#Changes. Now maps to region Şuşa [SUS]
        '57' => 'TAR', // Tartar
        '58' => 'TOV', // Tovuz
        '59' => 'UCA', // Ucar
        '60' => 'XAC', // Xacmaz
        '61' => 'XA', // Xankandi
        '62' => 'GYG', // Xanlar
        '63' => 'XIZ', // Xizi
        '64' => 'XCI', // Xocali
        '65' => 'XVD', // Xocavand
        '66' => 'YAR', // Yardimli
        '67' => 'YEV', // Yevlax
        '68' => 'YE', // Yevlax
        '69' => 'ZAN', // Zangilan
        '70' => 'ZAQ', // Zaqatala
        '71' => 'ZAR', // Zardab
    ],
    'BA' => [
        '01' => 'BIH',
        '02' => 'SRP',

        // invalid codes  [used by maxmind]
        '03' => 'BRC' //  Brčko distrikt was added in 2010. See https://en.wikipedia.org/wiki/ISO_3166-2:BA#Changes
    ],
    'BB' => [
        '01' => '01',
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
        '09' => '09',
        '10' => '10',
        '11' => '11',
    ],
    'BD' => [
        '81' => 'C',
        '82' => 'D',
        '83' => 'E',
        '84' => 'B',
        '85' => 'A',
        '86' => 'G',

        // invalid codes  [used by maxmind]
        '87' => 'F' // Rangpur added in 2011. See https://en.wikipedia.org/wiki/ISO_3166-2:BD#Changes
    ],
    'BE' => [
        '01' => 'VAN',
        '03' => 'WHT',
        '04' => 'WLG',
        '05' => 'VLI',
        '06' => 'WLX',
        '07' => 'WNA',
        '08' => 'VOV',
        '09' => 'VWV',
        '10' => 'WBR',
        '11' => 'BRU',
        '12' => 'VBR',

        // Conventional FIPS codes that are not listed on wikidata
        '13' => 'VLG',  // Flanders
        '14' => 'WAL'  // Wallonia
    ],
    'BF' => [
        '15' => 'BAM', // Bam
        '19' => 'BLK', // Boulkiemde
        '20' => 'GAN', // Ganzourgou
        '21' => 'GNA', // Gnagna
        '28' => 'KOT', // Kouritenga
        '33' => 'OUD', // Oudalan
        '34' => 'PAS', // Passore
        '36' => 'SNG', // Sanguie
        '40' => 'SOM', // Soum
        '42' => 'TAP', // Tapoa
        '44' => 'ZOU', // Zoundweogo
        '45' => 'BAL', // Bale
        '46' => 'BAN', // Banwa
        '47' => 'BAZ', // Bazega
        '48' => 'BGR', // Bougouriba
        '49' => 'BLG', // Boulgou
        '50' => 'GOU', // Gourma
        '51' => 'HOU', // Houet
        '52' => 'IOB', // Ioba
        '53' => 'KAD', // Kadiogo
        '54' => 'KEN', // Kenedougou
        '55' => 'COM', // Komoe
        '56' => 'KMD', // Komondjari
        '57' => 'KMP', // Kompienga
        '58' => 'KOS', // Kossi
        '59' => 'KOP', // Koulpelogo
        '60' => 'KOW', // Kourweogo
        '61' => 'LER', // Leraba
        '62' => 'LOR', // Loroum
        '63' => 'MOU', // Mouhoun
        '64' => 'NAM', // Namentenga
        '65' => 'NAO', // Naouri
        '66' => 'NAY', // Nayala
        '67' => 'NOU', // Noumbiel
        '68' => 'OUB', // Oubritenga
        '69' => 'PON', // Poni
        '70' => 'SMT', // Sanmatenga
        '71' => 'SEN', // Seno
        '72' => 'SIS', // Sissili
        '73' => 'SOR', // Sourou
        '74' => 'TUI', // Tuy
        '75' => 'YAG', // Yagha
        '76' => 'YAT', // Yatenga
        '77' => 'ZIR', // Ziro
        '78' => 'ZON', // Zondoma
    ],
    'BG' => [
        '38' => '01',
        '39' => '02',
        '40' => '08',
        '41' => '07',
        '42' => '23',
        '43' => '26',
        '44' => '09',
        '45' => '10',
        '46' => '11',
        '47' => '12',
        '48' => '13',
        '49' => '14',
        '50' => '15',
        '51' => '16',
        '52' => '17',
        '53' => '18',
        '54' => '27',
        '55' => '19',
        '56' => '20',
        '57' => '21',
        '58' => '23',
        '59' => '24',
        '60' => '25',
        '61' => '03',
        '62' => '04',
        '63' => '05',
        '64' => '06',
        '65' => '28',

        // Mikhaylovgrad seems to be a city in the region Montana
        '33' => '12'
    ],
    'BH' => [
        '01' => '15', // Al Hadd => Muharraq Governorate (https://en.wikipedia.org/wiki/Al_Hidd)
        '02' => '13', // Al Manamah => Capital Governorate (https://en.wikipedia.org/wiki/Manama)
        '05' => '', // Jidd Hafs => Capital and Northern Governorate 13/17 (https://en.wikipedia.org/wiki/Jidhafs)
        '06' => '', // Sitrah  => Capital and Southern Governorate 13/14 (https://en.wikipedia.org/wiki/Sitra)
        '08' => '', // Al Mintaqah al Gharbiyah => Northern and Southern Governorate 17/14 (https://en.wikipedia.org/wiki/Western_Region,_Bahrain)
        '09' => '14', // Mintaqat Juzur Hawar => Southern Governorate (https://en.wikipedia.org/wiki/Hawar_Islands)
        '10' => '17', // Al Mintaqah ash Shamaliyah => Northern Governorate (https://en.wikipedia.org/wiki/Northern_Region,_Bahrain)
        '11' => '', // Al Mintaqah al Wusta => Capital and Northern Governorates 13/17 (https://en.wikipedia.org/wiki/Central_Region,_Bahrain)
        '12' => '14', // Madīnat ٰĪsá => seems to be Southern Governorate based on the maps shown on wikipedia (https://en.wikipedia.org/wiki/Isa_Town)
        '13' => '14', // Ar Rifa => Southern Governorates (https://en.wikipedia.org/wiki/Rifa_and_Southern_Region,_Bahrain)
        '14' => '17', // Madinat Hamad => Northern Governorate (https://en.wikipedia.org/wiki/Hamad_Town)
        '15' => '15',
        '16' => '13',
        '17' => '14',
        '18' => '17',
        '19' => '', // seems to be Southern and Northern Governorate 14/17 based on the maps shown on wikipedia (https://en.wikipedia.org/wiki/Isa_Town)
    ],
    'BI' => [
        '02' => '', // Bujumbura was splitted into Bujumbura Mairie (BM) and Bujumbura Rural (BL) in 2010
        '09' => 'BB',
        '10' => 'BR',
        '11' => 'CA',
        '12' => 'CI',
        '13' => 'GI',
        '14' => 'KR',
        '15' => 'KY',
        '16' => 'KI',
        '17' => 'MA',
        '18' => 'MY',
        '19' => 'NG',
        '20' => 'RT',
        '21' => 'RY',
        '22' => 'MU',
        '23' => 'MW',
    ],
    'BJ' => [
        '07' => 'AL',
        '08' => 'AK',
        '09' => 'AQ',
        '10' => 'BO',
        '11' => 'CO',
        '12' => 'KO',
        '13' => 'DO',
        '14' => 'LI',
        '15' => 'MO',
        '16' => 'OU',
        '17' => 'PL',
        '18' => 'ZO',
    ],
    'BM' => [
        // ISO 3166-2 does not define any subdivisions of Bermuda, so simply remove them (https://en.wikipedia.org/wiki/ISO_3166-2:BM)
        '01' => '',
        '02' => '',
        '03' => '',
        '04' => '',
        '05' => '',
        '06' => '',
        '07' => '',
        '08' => '',
        '09' => '',
        '10' => '',
        '11' => '',
    ],
    'BN' => [
        // Seems Maxmind totally screwed up the region codes for Brunei
        // They used the codes for Benin (which has BN as FIPS country code) and replaced those codes available for Brunei

        // valid codes
        '08' => 'BE', // Belait
        '09' => 'BM', // Brunei and Muara
        '10' => 'TE', // Temburong
        '15' => 'TU', // Tutong

        // invalid codes that should not occur
        '07' => '', // Alibori
        '11' => '', // Collines
        '12' => '', // Kouffo
        '13' => '', // Donga
        '14' => '', // Littoral
        '16' => '', // Oueme
        '17' => '', // Plateau
        '18' => '', // Zou
    ],
    'BO' => [
        '01' => 'H',
        '02' => 'C',
        '03' => 'B',
        '04' => 'L',
        '05' => 'O',
        '06' => 'N',
        '07' => 'P',
        '08' => 'S',
        '09' => 'T',
    ],
    'BR' => [
        '01' => 'AC',
        '02' => 'AL',
        '03' => 'AP',
        '04' => 'AM',
        '05' => 'BA',
        '06' => 'CE',
        '07' => 'DF',
        '08' => 'ES',
        '11' => 'MS',
        '13' => 'MA',
        '14' => 'MT',
        '15' => 'MG',
        '16' => 'PA',
        '17' => 'PB',
        '18' => 'PR',
        '20' => 'PI',
        '21' => 'RJ',
        '22' => 'RN',
        '23' => 'RS',
        '24' => 'RO',
        '25' => 'RR',
        '26' => 'SC',
        '27' => 'SP',
        '28' => 'SE',
        '29' => 'GO',
        '30' => 'PE',
        '31' => 'TO',
    ],
    'BS' => [
        '05' => 'BI', // Bimini
        '06' => 'CI', // Cat Island
        '10' => 'EX', // Exuma
        '13' => 'IN', // Inagua
        '15' => 'LI', // Long Island
        '16' => 'MG', // Mayaguana
        '18' => 'RI', // Ragged Island
        '22' => 'HI', // Harbour Island
        '23' => '', // New Providence deleted in 2011 - without replacement (https://en.wikipedia.org/wiki/ISO_3166-2:BS#Changes)
        '24' => '', // Acklins and Crooked Islands  [now two seperate codes AK & CK]
        '25' => 'FP', // Freeport
        '26' => 'CS', // Fresh Creek  [is now roughly Central Andros]
        '27' => 'CE', // Governor's Harbour  [is now roughly Central Eleuthera]
        '28' => 'HT', // Green Turtle Cay - mapped to GT by wikidata, but removed in 2010 - now HT according to geonames (http://www.geonames.org/maps/google_26.758_-77.325.html)
        '29' => 'EG', // High Rock  [is now roughly East Grand Bahama]
        '30' => 'SA', // Kemps Bay  [now in South Andros]
        '31' => '', // Marsh Harbour
        '32' => '', // Nichollstown and Berry Islands
        '33' => 'SE', // Rock Sound  [is now roughly South Eleuthera]
        '34' => '', // Sandy Point
        '35' => '', // San Salvador and Rum Cay  [now two seperate codes SS & RC]
    ],
    'BT' => [
        '05' => '33',
        '06' => '12',
        '07' => '21',
        '08' => '22',
        '09' => '31',
        '10' => '13',
        '11' => '44',
        '12' => '42',
        '13' => '11',
        '14' => '43',
        '15' => '23',
        '16' => '14', // Samtse
        '17' => '45',
        '18' => '34', // Zhemgang
        '19' => '41',
        '20' => '15',
        '21' => '32', // Tongsa
        '22' => '24', // Wangdi Phodrang
    ],
    'BW' => [
        '01' => 'CE',
        '03' => 'GH',
        '04' => 'KG',
        '05' => 'KL',
        '06' => 'KW',
        '08' => 'NE',
        '09' => 'SE',
        '10' => 'SO',
        '11' => 'NW',
    ],
    'BY' => [
        '01' => 'BR',
        '02' => 'HO',
        '03' => 'HR',
        '04' => 'HM',
        '05' => 'MI',
        '06' => 'MA',
        '07' => 'VI',
    ],
    'BZ' => [
        '01' => 'BZ',
        '02' => 'CY',
        '03' => 'CZL',
        '04' => 'OW',
        '05' => 'SC',
        '06' => 'TOL',
    ],
    'CD' => [
        '01' => '', // Bandundu  [split up]
        '02' => 'EQ', // Equateur
        '04' => 'KE', // Kasai-Oriental
        '05' => '', // Katanga  [split up]
        '06' => 'KN', // Kinshasa
        '08' => 'BC', // Bas-Congo
        '09' => '', // Orientale  [split up]
        '10' => 'MA', // Maniema
        '11' => 'NK', // Nord-Kivu
        '12' => 'SK', // Sud-Kivu

        // valid codes  [not used by maxmind]
        '03' => '', // Kasaï-Occidental  [split up]
    ],
    'CF' => [
        '01' => 'BB',
        '02' => 'BK',
        '03' => 'HK',
        '04' => 'HS',
        '05' => 'HM',
        '06' => 'KG',
        '07' => 'LB',
        '08' => 'MB',
        '09' => 'NM',
        '11' => 'UK',
        '12' => 'AC',
        '13' => 'OP',
        '14' => 'VK',
        '15' => 'KB',
        '16' => 'SE',
        '17' => 'MP',
        '18' => 'BGF',
    ],
    'CG' => [
        '01' => '11',
        '04' => '5',
        '05' => '2',
        '06' => '7',
        '07' => '9',
        '08' => '14',
        '10' => '13',
        '11' => '12',
        '12' => 'BZV',
        '13' => '8',
        '14' => '15',
    ],
    'CH' => [
        '01' => 'AG',
        '02' => 'AR',
        '03' => 'BL',
        '04' => 'BS',
        '05' => 'BE',
        '06' => 'FR',
        '07' => 'GE',
        '08' => 'GL',
        '09' => 'GR',
        '10' => 'AI',
        '11' => 'LU',
        '12' => 'NE',
        '13' => 'NW',
        '14' => 'OW',
        '15' => 'SG',
        '16' => 'SH',
        '17' => 'SZ',
        '18' => 'SO',
        '19' => 'TG',
        '20' => 'TI',
        '21' => 'UR',
        '22' => 'VS',
        '23' => 'VD',
        '24' => 'ZG',
        '25' => 'ZH',
        '26' => 'JU',
    ],
    'CI' => [
        '74' => 'LG', // Agneby  [now part of Lagunes]
        '75' => 'WR', // Bafing  [now part of Woroba]
        '76' => 'BS', // Bas-Sassandra
        '77' => 'DN', // Denguele
        '78' => 'MG', // Dix-Huit Montagnes
        '79' => 'GD', // Fromager  [now part of Gôh-Djiboua]
        '80' => 'SM', // Haut-Sassandra
        '81' => 'LC', // Lacs
        '82' => 'LG', // Lagunes
        '83' => 'SM', // Marahoue
        '84' => 'MG', // Moyen-Cavally  [now part of Montagnes]
        '85' => 'CM', // Moyen-Comoe  [now part of Comoé]
        '86' => 'LC', // N'zi-Comoe  [now part of Lacs]
        '87' => 'SV', // Savanes
        '88' => '', // Sud-Bandama  [spit up]
        '89' => 'CM', // Sud-Comoe
        '90' => 'VB', // Vallee du Bandama
        '91' => 'WR', // Worodougou  [now part of Woroba]
        '92' => 'ZZ', // Zanzan
    ],
    'CL' => [
        '01' => 'VS',
        '02' => 'AI',
        '03' => 'AN',
        '04' => 'AR',
        '05' => 'AT',
        '06' => 'BI',
        '07' => 'CO',
        '08' => 'LI',
        '10' => 'MA',
        '11' => 'ML',
        '12' => 'RM',
        '14' => 'LL',
        '15' => 'TA',
        '16' => 'AP',
        '17' => 'LR',

        // mapped based on their names (https://en.wikipedia.org/wiki/ISO_3166-2:CL)
        '09' => 'LL', // Los Lagos
        '13' => 'TA', // Tarapaca
    ],
    'CM' => [
        '04' => 'ES',
        '05' => 'LT',
        '07' => 'NW',
        '08' => 'OU',
        '09' => 'SW',
        '10' => 'AD',
        '11' => 'CE',
        '12' => 'EN',
        '13' => 'NO',
        '14' => 'SU',
    ],
    'CN' => [
        '01' => 'AH',
        '02' => 'ZJ',
        '03' => 'JX',
        '04' => 'JS',
        '05' => 'JL',
        '06' => 'QH',
        '07' => 'FJ',
        '08' => 'HL',
        '09' => 'HA',
        '10' => 'HE',
        '11' => 'HN',
        '12' => 'HB',
        '13' => 'XJ',
        '14' => 'XZ',
        '15' => 'GS',
        '16' => 'GX',
        '18' => 'GZ',
        '19' => 'LN',
        '20' => 'NM',
        '21' => 'NX',
        '22' => 'BJ',
        '23' => 'SH',
        '24' => 'SX',
        '25' => 'SD',
        '26' => 'SN',
        '28' => 'TJ',
        '29' => 'YN',
        '30' => 'GD',
        '31' => 'HI',
        '32' => 'SC',
        '33' => 'CQ',
    ],
    'CO' => [
        '01' => 'AMA',
        '02' => 'ANT',
        '03' => 'ARA',
        '04' => 'ATL',
        '08' => 'CAQ',
        '09' => 'CAU',
        '10' => 'CES',
        '11' => 'CHO',
        '12' => 'COR',
        '14' => 'GUV',
        '15' => 'GUA',
        '16' => 'HUI',
        '17' => 'LAG',
        '19' => 'MET',
        '20' => 'NAR',
        '21' => 'NSA',
        '22' => 'PUT',
        '23' => 'QUI',
        '24' => 'RIS',
        '25' => 'SAP',
        '26' => 'SAN',
        '27' => 'SUC',
        '28' => 'TOL',
        '29' => 'VAC',
        '30' => 'VAU',
        '31' => 'VID',
        '32' => 'CAS',
        '33' => 'CUN',
        '34' => 'DC',
        '35' => 'BOL',
        '36' => 'BOY',
        '37' => 'CAL',
        '38' => 'MAG',
    ],
    'CR' => [
        '01' => 'A',
        '02' => 'C',
        '03' => 'G',
        '04' => 'H',
        '06' => 'L',
        '07' => 'P',
        '08' => 'SJ',
    ],
    'CU' => [
        '01' => '01', // Pinar del Rio
        '02' => '', // Ciudad de la Habana was splitted in 2011 into 15 & 16 (https://en.wikipedia.org/wiki/ISO_3166-2:CU)
        '03' => '04', // Matanzas
        '04' => '99', // Isla de la Juventud
        '05' => '09', // Camaguey
        '07' => '08', // Ciego de Avila
        '08' => '06', // Cienfuegos
        '09' => '12', // Granma
        '10' => '14', // Guantanamo
        '11' => '03', // La Habana
        '12' => '11', // Holguin
        '13' => '10', // Las Tunas
        '14' => '07', // Sancti Spiritus
        '15' => '13', // Santiago de Cuba
        '16' => '05', // Villa Clara
    ],
    'CV' => [
        '01' => 'BV',
        '02' => 'BR',
        '04' => 'MA',
        '05' => 'PA',
        '07' => 'RG',
        '08' => 'SL',
        '10' => '', // Sao Nicolau was splitted in 2005 into Ribeira Brava (BR) & Tarrafal de São Nicolau (TS) (https://en.wikipedia.org/wiki/ISO_3166-2:CV)
        '11' => 'SV',
        '13' => 'MO',
        '14' => 'PR',
        '15' => 'CA',
        '16' => 'CR',
        '17' => 'SD',
        '18' => 'SF',
        '19' => 'SM',
        '20' => 'TA',
    ],
    'CY' => [
        '01' => '04',
        '02' => '06',
        '03' => '03',
        '04' => '01',
        '05' => '02',
        '06' => '05',
    ],
    'CZ' => [
        '52' => '10',
        '78' => '64',
        '79' => '31',
        '80' => '63',
        '81' => '41',
        '82' => '52',
        '83' => '51',
        '84' => '71',
        '85' => '80',
        '86' => '53',
        '87' => '32',
        '88' => '20',
        '89' => '42',
        '90' => '72',
    ],
    'DE' => [
        '01' => 'BW',
        '02' => 'BY',
        '03' => 'HB',
        '04' => 'HH',
        '05' => 'HE',
        '06' => 'NI',
        '07' => 'NW',
        '08' => 'RP',
        '09' => 'SL',
        '10' => 'SH',
        '11' => 'BB',
        '12' => 'MV',
        '13' => 'SN',
        '14' => 'ST',
        '15' => 'TH',
        '16' => 'BE',
    ],
    'DJ' => [
        '01' => 'AS',
        '04' => 'OB',
        '05' => 'TA',
        '06' => 'DI',
        '07' => 'DJ',
        '08' => 'AR',
    ],
    'DK' => [
        '17' => '84',
        '18' => '82',
        '19' => '81',
        '20' => '85',
        '21' => '83',
    ],
    'DM' => [
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
        '09' => '09',
        '10' => '10',
        '11' => '11',
    ],
    'DO' => [
        '01' => '02',
        '02' => '03',
        '03' => '04',
        '04' => '05',
        '05' => '01', // Distrito Nacional
        '06' => '06',
        '08' => '09',
        '09' => '10',
        '10' => '11',
        '11' => '07',
        '12' => '12',
        '14' => '14',
        '15' => '15',
        '16' => '16',
        '17' => '17', // Peravia
        '18' => '18',
        '19' => '19',
        '20' => '20',
        '21' => '24',
        '23' => '22',
        '24' => '23',
        '25' => '25',
        '26' => '26',
        '27' => '27',
        '28' => '08',
        '29' => '30',
        '30' => '13',
        '31' => '28',
        '32' => '29',
        '33' => '21',
        '34' => '01',
        '35' => '17',
        '36' => '31',
        '37' => '32',
    ],
    'DZ' => [
        '01' => '16',
        '03' => '05',
        '04' => '25',
        '06' => '26',
        '07' => '27',
        '09' => '31',
        '10' => '20',
        '12' => '19',
        '13' => '14',
        '14' => '15',
        '15' => '13',
        '18' => '06',
        '19' => '07',
        '20' => '09',
        '21' => '10',
        '22' => '17',
        '23' => '24',
        '24' => '18',
        '25' => '03',
        '26' => '29',
        '27' => '28',
        '29' => '04',
        '30' => '22',
        '31' => '21',
        '33' => '12',
        '34' => '01',
        '35' => '44',
        '36' => '46',
        '37' => '23',
        '38' => '08',
        '39' => '34',
        '40' => '35',
        '41' => '02',
        '42' => '32',
        '43' => '39',
        '44' => '36',
        '45' => '47',
        '46' => '33',
        '47' => '40',
        '48' => '43',
        '49' => '45',
        '50' => '30',
        '51' => '48',
        '52' => '41',
        '53' => '11',
        '54' => '37',
        '55' => '42',
        '56' => '38',
    ],
    'EC' => [
        '01' => 'W',
        '02' => 'A',
        '03' => 'B',
        '04' => 'F',
        '05' => 'C',
        '06' => 'H',
        '07' => 'X',
        '08' => 'O',
        '09' => 'E',
        '10' => 'G',
        '11' => 'I',
        '12' => 'L',
        '13' => 'R',
        '14' => 'M',
        '15' => 'S',
        '17' => 'Y',
        '18' => 'P',
        '19' => 'T',
        '20' => 'Z',
        '22' => 'U',
        '23' => 'N',
        '24' => 'D',
    ],
    'EE' => [
        '01' => '37',
        '02' => '39',
        '03' => '44',
        '04' => '51',
        '05' => '49',
        '07' => '57',
        '08' => '59',
        '11' => '67',
        '12' => '65',
        '13' => '70',
        '14' => '74',
        '18' => '78',
        '19' => '82',
        '20' => '84',
        '21' => '86',

        // invalid codes [used by maxmind] (mapped based on https://en.wikipedia.org/wiki/Municipalities_of_Estonia#Former_municipalities)
        '06' => '44', // Kohtla-Jarve is part of Ida-Viru
        '09' => '44', // Narva is part of Ida-Viru
        '10' => '67', // Parnu
        '15' => '44', // Sillamae is part of Ida-Viru
        '16' => '37', // Tallinn is part of Harju
        '17' => '78', // Tartu
    ],
    'EG' => [
        '01' => 'DK',
        '02' => 'BA',
        '03' => 'BH',
        '04' => 'FYM',
        '05' => 'GH',
        '06' => 'ALX',
        '07' => 'IS',
        '08' => 'GZ',
        '09' => 'MNF',
        '10' => 'MN',
        '11' => 'C',
        '12' => 'KB',
        '13' => 'WAD',
        '14' => 'SHR',
        '15' => 'SUZ',
        '16' => 'ASN',
        '17' => 'AST',
        '18' => 'BNS',
        '19' => 'PTS',
        '20' => 'DT',
        '21' => 'KFS',
        '22' => 'MT',
        '23' => 'KN',
        '24' => 'SHG',
        '26' => 'JS',
        '27' => 'SIN',

        // invalid codes  [used by maxmind]
        '28' => 'LX', // Al Uqsur
    ],
    'ER' => [
        '01' => 'AN',
        '02' => 'DU',
        '03' => 'DK',
        '04' => 'GB',
        '05' => 'MA',
        '06' => 'SK',
    ],
    'ES' => [
        '07' => 'IB',
        '27' => 'LO',
        '29' => 'MD',
        '31' => 'MC',
        '32' => 'NC',
        '34' => 'AS',
        '39' => 'CB',
        '51' => 'AN',
        '52' => 'AR',
        '53' => 'CN',
        '54' => 'CM',
        '55' => 'CL',
        '56' => 'CT',
        '57' => 'EX',
        '58' => 'GA',
        '59' => 'PV',
        '60' => 'VC',
    ],
    'ET' => [
        '44' => 'AA',
        '45' => 'AF',
        '46' => 'AM',
        '47' => 'BE',
        '48' => 'DD',
        '49' => 'GA',
        '50' => 'HA',
        '51' => 'OR',
        '52' => 'SO',
        '53' => 'TI',
        '54' => 'SN',
    ],
    'FI' => [
        // was rearranged in 2011. codes on wikidata are outdated (https://en.wikipedia.org/wiki/ISO_3166-2:FI)
        '01' => '01', // Aland
        '06' => '10', // Lapland
        '08' => '', // Oulu splitted into subdivisions
        '13' => '', // Southern Finland splitted into subdivisions
        '14' => '', // Eastern Finland splitted into subdivisions
        '15' => '', // Western Finland splitted into subdivisions
    ],
    'FJ' => [
        '01' => 'C',
        '02' => 'E',
        '03' => 'N',
        '04' => 'R',
        '05' => 'W',
    ],
    'FR' => [
        '97' => 'NAQ', // Aquitaine
        '98' => 'ARA', // Auvergne
        '99' => 'NOR', // Basse-Normandie
        'A1' => 'BFC', // Bourgogne
        'A2' => 'BRE', // Bretagne
        'A3' => 'CVL', // Centre
        'A4' => 'GES', // Champagne-Ardenne
        'A5' => 'COR', // Corse
        'A6' => 'BFC', // Franche-Comte
        'A7' => 'NOR', // Haute-Normandie
        'A8' => 'IDF', // Ile-de-France
        'A9' => 'OCC', // Languedoc-Roussillon
        'B1' => 'NAQ', // Limousin
        'B2' => 'GES', // Lorraine
        'B3' => 'OCC', // Midi-Pyrenees
        'B4' => 'HDF', // Nord-Pas-de-Calais
        'B5' => 'PDL', // Pays de la Loire
        'B6' => 'HDF', // Picardie
        'B7' => 'NAQ', // Poitou-Charentes
        'B8' => 'PAC', // Provence-Alpes-Cote d'Azur
        'B9' => 'ARA', // Rhone-Alpes
        'C1' => 'GES', // Alsace
    ],
    'FM' => [
        '01' => 'KSA', // Kosrae
        '02' => 'PNI', // Pohnpei
        '03' => 'TRK', // Chuuk
        '04' => 'YAP', // Yap
    ],
    'GA' => [
        '01' => '1',
        '02' => '2',
        '03' => '3',
        '04' => '4',
        '05' => '5',
        '06' => '6',
        '07' => '7',
        '08' => '8',
        '09' => '9',
    ],
    'GB' => [
        'A1' => 'BDG',
        'A2' => 'BNE',
        'A3' => 'BNS',
        'A4' => 'BAS',
        'A5' => '', // Bedfordshire  [split up]
        'A6' => 'BEX',
        'A7' => 'BIR',
        'A8' => 'BBD',
        'A9' => 'BPL',
        'B1' => 'BOL',
        'B2' => 'BMH',
        'B3' => 'BRC',
        'B4' => 'BRD',
        'B5' => 'BEN',
        'B6' => 'BNH',
        'B7' => 'BST',
        'B8' => 'BRY',
        'B9' => 'BKM',
        'C1' => 'BUR',
        'C2' => 'CLD',
        'C3' => 'CAM',
        'C4' => 'CMD',
        'C5' => '', // Cheshire  [split up]
        'C6' => 'CON',
        'C7' => 'COV',
        'C8' => 'CRY',
        'C9' => 'CMA',
        'D1' => 'DAL',
        'D2' => 'DER',
        'D3' => 'DBY',
        'D4' => 'DEV',
        'D5' => 'DNC',
        'D6' => 'DOR',
        'D7' => 'DUD',
        'D8' => 'DUR',
        'D9' => 'EAL',
        'E1' => 'ERY',
        'E2' => 'ESX',
        'E3' => 'ENF',
        'E4' => 'ESS',
        'E5' => 'GAT',
        'E6' => 'GLS',
        'E7' => 'GRE',
        'E8' => 'HCK',
        'E9' => 'HAL',
        'F1' => 'HMF',
        'F2' => 'HAM',
        'F3' => 'HRY',
        'F4' => 'HRW',
        'F5' => 'HPL',
        'F6' => 'HAV',
        'F7' => 'HEF',
        'F8' => 'HRT',
        'F9' => 'HIL',
        'G1' => 'HNS',
        'G2' => 'IOW',
        'G3' => 'ISL',
        'G4' => 'KEC',
        'G5' => 'KEN',
        'G6' => 'KHL',
        'G7' => 'KTT',
        'G8' => 'KIR',
        'G9' => 'KWL',
        'H1' => 'LBH',
        'H2' => 'LAN',
        'H3' => 'LDS',
        'H4' => 'LCE',
        'H5' => 'LEC',
        'H6' => 'LEW',
        'H7' => 'LIN',
        'H8' => 'LIV',
        'H9' => 'LND',
        'I1' => 'LUT',
        'I2' => 'MAN',
        'I3' => 'MDW',
        'I4' => 'MRT',
        'I5' => 'MDB',
        'I6' => 'MIK',
        'I7' => 'NET',
        'I8' => 'NWM',
        'I9' => 'NFK',
        'J1' => 'NTH',
        'J2' => 'NEL',
        'J3' => 'NLN',
        'J4' => 'NSM',
        'J5' => 'NTY',
        'J6' => 'NBL',
        'J7' => 'NYK',
        'J8' => 'NGM',
        'J9' => 'NTT',
        'K1' => 'OLD',
        'K2' => 'OXF',
        'K3' => 'PTE',
        'K4' => 'PLY',
        'K5' => 'POL',
        'K6' => 'POR',
        'K7' => 'RDG',
        'K8' => 'RDB',
        'K9' => 'RCC',
        'L1' => 'RIC',
        'L2' => 'RCH',
        'L3' => 'ROT',
        'L4' => 'RUT',
        'L5' => 'SLF',
        'L6' => 'SHR',
        'L7' => 'SAW',
        'L8' => 'SFT',
        'L9' => 'SHF',
        'M1' => 'SLG',
        'M2' => 'SOL',
        'M3' => 'SOM',
        'M4' => 'STH',
        'M5' => 'SOS',
        'M6' => 'SGC',
        'M7' => 'STY',
        'M8' => 'SWK',
        'M9' => 'STS',
        'N1' => 'SHN',
        'N2' => 'SKP',
        'N3' => 'STT',
        'N4' => 'STE',
        'N5' => 'SFK',
        'N6' => 'SND',
        'N7' => 'SRY',
        'N8' => 'STN',
        'N9' => 'SWD',
        'O1' => 'TAM',
        'O2' => 'TFW',
        'O3' => 'THR',
        'O4' => 'TOB',
        'O5' => 'TWH',
        'O6' => 'TRF',
        'O7' => 'WKF',
        'O8' => 'WLL',
        'O9' => 'WFT',
        'P1' => 'WND',
        'P2' => 'WRT',
        'P3' => 'WAR',
        'P4' => 'WBK',
        'P5' => 'WSM',
        'P6' => 'WSX',
        'P7' => 'WGN',
        'P8' => 'WIL',
        'P9' => 'WNM',
        'Q1' => 'WRL',
        'Q2' => 'WOK',
        'Q3' => 'WLV',
        'Q4' => 'WOR',
        'Q5' => 'YOR',
        'Q6' => 'ANN',
        'Q7' => 'AND',
        'Q8' => 'ABC', // Armagh  [merged into Armagh, Banbridge and Craigavon]
        'Q9' => 'MEA',
        'R1' => 'CCG', // Ballymoney  [merged into Causeway Coast and Glens]
        'R2' => 'ABC', // Banbridge  [merged into Armagh, Banbridge and Craigavon]
        'R3' => 'BFS',
        'R4' => 'MEA',
        'R5' => 'LBC', // Castlereagh  [merged into Lisburn and Castlereagh]
        'R6' => 'CCG',
        'R7' => 'MUL',
        'R8' => 'ABC', // Craigavon  [merged into Armagh, Banbridge and Craigavon]
        'R9' => 'NMD', // Down  [merged into Newry, Mourne and Down]
        'S1' => 'MUL', // Dungannon and South Tyrone  [merged into Mid-Ulster]
        'S2' => 'FMO', // Fermanagh
        'S3' => 'MEA', // Larne  [merged into Mid and East Antrim]
        'S4' => 'CCG', // Limavady  [merged into Causeway Coast and Glens]
        'S5' => 'LBC', // Lisburn
        'S6' => 'DRS',
        'S7' => 'MUL', // Magherafelt  [merged into Mid-Ulster]
        'S8' => 'CCG',
        'S9' => 'NMD',
        'T1' => 'ANN', // Newtownabbey  [merged into Antrim and Newtownabbey]
        'T2' => 'AND', // North Down  [merged into  North Down and Ards]
        'T3' => 'FMO', // Omagh
        'T4' => 'DRS', // Strabane
        'T5' => 'ABE',
        'T6' => 'ABD',
        'T7' => 'ANS',
        'T8' => 'AGB',
        'T9' => 'SCB',
        'U1' => 'CLK',
        'U2' => 'DGY',
        'U3' => 'DND',
        'U4' => 'EAY',
        'U5' => 'EDU',
        'U6' => 'ELN',
        'U7' => 'ERW',
        'U8' => 'EDH',
        'U9' => 'FAL',
        'V1' => 'FIF',
        'V2' => 'GLG',
        'V3' => 'HLD',
        'V4' => 'IVC',
        'V5' => 'MLN',
        'V6' => 'MRY',
        'V7' => 'NAY',
        'V8' => 'NLK',
        'V9' => 'ORK',
        'W1' => 'PKN',
        'W2' => 'RFW',
        'W3' => 'ZET',
        'W4' => 'SAY',
        'W5' => 'SLK',
        'W6' => 'STG',
        'W7' => 'WDU',
        'W8' => 'ELS',
        'W9' => 'WLN',
        'X1' => 'AGY',
        'X2' => 'BGW',
        'X3' => 'BGE',
        'X4' => 'CAY',
        'X5' => 'CRF',
        'X6' => 'CGN',
        'X7' => 'CMN',
        'X8' => 'CWY',
        'X9' => 'DEN',
        'Y1' => 'FLN',
        'Y2' => 'GWN',
        'Y3' => 'MTY',
        'Y4' => 'MON',
        'Y5' => 'NTL',
        'Y6' => 'NWP',
        'Y7' => 'PEM',
        'Y8' => 'POW',
        'Y9' => 'RCT',
        'Z1' => 'SWA',
        'Z2' => 'TOF',
        'Z3' => 'VGL',
        'Z4' => 'WRX',

        // invalid codes [used by maxmind] (mapped based on names)
        'Z5' => '', // Bedfordshire  [split up]
        'Z6' => 'CBF', // Central Bedfordshire
        'Z7' => 'CHE', // Cheshire East
        'Z8' => 'CHW', // Cheshire West and Chester
        'Z9' => 'IOS', // Isles of Scilly
    ],
    'GD' => [
        '01' => '01',
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
    ],
    'GE' => [
        // subdivisions rearranged 2002 (https://en.wikipedia.org/wiki/ISO_3166-2:EG)
        // mapping based on the subdivision wikipedia pages
        '01' => 'SZ', // Abashis Raioni is within Samegrelo-Zemo Svaneti
        '02' => 'AB', // Abkhazia
        '03' => 'SJ', // Adigenis Raioni is within Samtskhe-Javakheti
        '04' => 'AJ', // Ajaria
        '05' => 'MM', // Akhalgoris Raioni is within Mtskheta-Mtianeti
        '06' => 'SJ', // Akhalk'alak'is Raioni is within Samtskhe-Javakheti
        '07' => 'SJ', // Akhalts'ikhis Raioni is within Samtskhe-Javakheti
        '08' => 'KA', // Akhmetis Raioni is within Kakheti
        '09' => 'RL', // Ambrolauris Raioni is within Racha-Lechkhumi and Kvemo Svaneti
        '10' => 'SJ', // Aspindzis Raioni is within Samtskhe-Javakheti
        '11' => 'IM', // Baghdat'is Raioni is within Imereti
        '12' => 'KK', // Bolnisis Raioni is within Kvemo Kartli
        '13' => 'SJ', // Borjomis Raioni is within Samtskhe-Javakheti
        '14' => 'IM', // Chiat'ura is within Imereti
        '15' => 'SZ', // Ch'khorotsqus Raioni is within Samegrelo-Zemo Svaneti
        '16' => 'GU', // Ch'okhatauris Raioni is within Guria
        '17' => 'KA', // Dedop'listsqaros Raioni is within Kakheti
        '18' => 'KA', // Dmanisis Raioni is within Kakheti
        '19' => 'MM', // Dushet'is Raioni is within Mtskheta-Mtianeti
        '20' => 'KK', // Gardabanis Raioni is within Kvemo Kartli
        '21' => 'SK', // Gori is within Shida Kartli
        '22' => 'SK', // Goris Raioni is within Shida Kartli
        '23' => 'KA', // Gurjaanis Raioni is within Kakheti
        '24' => 'SK', // Javis Raioni is within Shida Kartli
        '25' => 'SK', // K'arelis Raioni is within Shida Kartli
        '26' => 'SK', // Kaspis Raioni is within Shida Kartli
        '27' => 'IM', // Kharagaulis Raioni is within Imereti
        '28' => 'SK', // Khashuris Raioni is within Shida Kartli
        '29' => 'SZ', // Khobis Raioni is within Samegrelo-Zemo Svaneti
        '30' => 'IM', // Khonis Raioni is within Imereti
        '31' => 'IM', // K'ut'aisi is within Imereti
        '32' => 'KA', // Lagodekhis Raioni is within Kakheti
        '33' => 'GU', // Lanch'khut'is Raioni is within Guria
        '34' => 'RL', // Lentekhis Raioni is within Racha-Lechkhumi and Kvemo Svaneti
        '35' => 'KK', // Marneulis Raioni is within Kvemo Kartli
        '36' => 'SZ', // Martvilis Raioni is within Samegrelo-Zemo Svaneti
        '37' => 'SZ', // Mestiis Raioni is within Samegrelo-Zemo Svaneti
        '38' => 'MM', // Mts'khet'is Raioni is within Mtskheta-Mtianeti
        '39' => 'SJ', // Ninotsmindis Raioni is within Samtskhe-Javakheti
        '40' => 'RL', // Onis Raioni is within Racha-Lechkhumi and Kvemo Svaneti
        '41' => 'GU', // Ozurget'is Raioni is within Guria
        '42' => 'SZ', // P'ot'i is within Samegrelo-Zemo Svaneti
        '43' => 'MM', // Qazbegis Raioni is within Mtskheta-Mtianeti
        '44' => 'KA', // Qvarlis Raioni is within Kakheti
        '45' => 'KK', // Rust'avi is within Kvemo Kartli
        '46' => 'IM', // Sach'kheris Raioni is within Imereti
        '47' => 'KA', // Sagarejos Raioni is within Kakheti
        '48' => 'IM', // Samtrediis Raioni is within Imereti
        '49' => 'SZ', // Senakis Raioni is within Samegrelo-Zemo Svaneti
        '50' => 'KA', // Sighnaghis Raioni is within Kakheti
        '51' => 'TB', // T'bilisi
        '52' => 'KA', // T'elavis Raioni is within Kakheti
        '53' => 'IM', // T'erjolis Raioni is within Imereti
        '54' => 'KK', // T'et'ritsqaros Raioni is within Kvemo Kartli
        '55' => 'MM', // T'ianet'is Raioni is within Mtskheta-Mtianeti
        '56' => 'IM', // Tqibuli is within Imereti
        '57' => 'RL', // Ts'ageris Raioni is within Racha-Lechkhumi and Kvemo Svaneti
        '58' => 'SZ', // Tsalenjikhis Raioni is within Samegrelo-Zemo Svaneti
        '59' => 'KK', // Tsalkis Raioni is within Kvemo Kartli
        '60' => 'IM', // Tsqaltubo is within Imereti
        '61' => 'IM', // Vanis Raioni is within Imereti
        '62' => 'IM', // Zestap'onis Raioni is within Imereti
        '63' => 'SZ', // Zugdidi is within Samegrelo-Zemo Svaneti
        '64' => 'SZ', // Zugdidis Raioni is within Samegrelo-Zemo Svaneti
    ],
    'GH' => [
        '01' => 'AA',
        '02' => 'AH',
        '03' => 'BA',
        '04' => 'CP',
        '05' => 'EP',
        '06' => 'NP',
        '08' => 'TV',
        '09' => 'WP',
        '10' => 'UE',
        '11' => 'UW',
    ],
    'GL' => [
        // ISO introduced their own regions in 2010, they completely differ from FIPS and are not mappable
        '01' => '', // Nordgronland
        '02' => '', // Ostgronland
        '03' => '', // Vestgronland
    ],
    'GM' => [
        '01' => 'B',
        '02' => 'L',
        '03' => 'M',
        '04' => 'U',
        '05' => 'W',
        '07' => 'N',
    ],
    'GN' => [
        '01' => 'BE', // Beyla
        '02' => 'BF', // Boffa
        '03' => 'BK', // Boke
        '04' => 'C', // Conakry
        '05' => 'DB', // Dabola
        '06' => 'DL', // Dalaba
        '07' => 'DI', // Dinguiraye
        '09' => 'FA', // Faranah
        '10' => 'FO', // Forecariah
        '11' => 'FR', // Fria
        '12' => 'GA', // Gaoual
        '13' => 'GU', // Gueckedou
        '15' => 'KE', // Kerouane
        '16' => 'KD', // Kindia
        '17' => 'KS', // Kissidougou
        '18' => 'KN', // Koundara
        '19' => 'KO', // Kouroussa
        '21' => 'MC', // Macenta
        '22' => 'ML', // Mali
        '23' => 'MM', // Mamou
        '25' => 'PI', // Pita
        '27' => 'TE', // Telimele
        '28' => 'TO', // Tougue
        '29' => 'YO', // Yomou
        '30' => 'CO', // Coyah
        '31' => 'DU', // Dubreka
        '32' => 'KA', // Kankan
        '33' => 'KB', // Koubia
        '34' => 'LA', // Labe
        '35' => 'LE', // Lelouma
        '36' => 'LO', // Lola
        '37' => 'MD', // Mandiana
        '38' => 'NZ', // Nzerekore
        '39' => 'SI', // Siguiri
    ],
    'GQ' => [
        '03' => 'AN',
        '04' => 'BN',
        '05' => 'BS',
        '06' => 'CS',
        '07' => 'KN',
        '08' => 'LI',
        '09' => 'WN',
    ],
    'GR' => [
        // rearranged 2016. mapping based on (https://en.wikipedia.org/wiki/ISO_3166-2:GR)
        '01' => 'A', // Evros
        '02' => 'A', // Rodhopi
        '03' => 'A', // Xanthi
        '04' => 'A', // Drama
        '05' => 'B', // Serrai
        '06' => 'B', // Kilkis
        '07' => 'B', // Pella
        '08' => 'C', // Florina
        '09' => 'C', // Kastoria
        '10' => 'C', // Grevena
        '11' => 'C', // Kozani
        '12' => 'B', // Imathia
        '13' => 'B', // Thessaloniki
        '14' => 'A', // Kavala
        '15' => 'B', // Khalkidhiki
        '16' => 'B', // Pieria
        '17' => 'D', // Ioannina
        '18' => 'D', // Thesprotia
        '19' => 'D', // Preveza
        '20' => 'D', // Arta
        '21' => 'E', // Larisa
        '22' => 'E', // Trikala
        '23' => 'E', // Kardhitsa
        '24' => 'E', // Magnisia
        '25' => 'F', // Kerkira
        '26' => 'F', // Levkas
        '27' => 'F', // Kefallinia
        '28' => 'F', // Zakinthos
        '29' => 'H', // Fthiotis
        '30' => 'H', // Evritania
        '31' => 'G', // Aitolia kai Akarnania
        '32' => 'H', // Fokis
        '33' => 'H', // Voiotia
        '34' => 'H', // Evvoia
        '35' => 'I', // Attiki
        '36' => 'J', // Argolis
        '37' => 'J', // Korinthia
        '38' => 'G', // Akhaia
        '39' => 'G', // Ilia
        '40' => 'J', // Messinia
        '41' => 'J', // Arkadhia
        '42' => 'J', // Lakonia
        '43' => 'M', // Khania
        '44' => 'M', // Rethimni
        '45' => 'M', // Iraklion
        '46' => 'M', // Lasithi
        '47' => 'L', // Dhodhekanisos
        '48' => 'K', // Samos
        '49' => 'L', // Kikladhes
        '50' => 'K', // Khios
        '51' => 'K', // Lesvos
    ],
    'GT' => [
        '01' => 'AV',
        '02' => 'BV',
        '03' => 'CM',
        '04' => 'CQ',
        '05' => 'PR',
        '06' => 'ES',
        '07' => 'GU',
        '08' => 'HU',
        '09' => 'IZ',
        '10' => 'JA',
        '11' => 'JU',
        '12' => 'PE',
        '13' => 'QZ',
        '14' => 'QC',
        '15' => 'RE',
        '16' => 'SA',
        '17' => 'SM',
        '18' => 'SR',
        '19' => 'SO',
        '20' => 'SU',
        '21' => 'TO',
        '22' => 'ZA',
    ],
    'GW' => [
        '01' => 'BA',
        '02' => 'QU',
        '04' => 'OI',
        '05' => 'BL',
        '06' => 'CA',
        '07' => 'TO',
        '10' => 'GA',
        '11' => 'BS',
        '12' => 'BM',
    ],
    'GY' => [
        '10' => 'BA',
        '11' => 'CU',
        '12' => 'DE',
        '13' => 'EB',
        '14' => 'ES',
        '15' => 'MA',
        '16' => 'PM',
        '17' => 'PT',
        '18' => 'UD',
        '19' => 'UT',
    ],
    'HN' => [
        '01' => 'AT',
        '02' => 'CH',
        '03' => 'CL',
        '04' => 'CM',
        '05' => 'CP',
        '06' => 'CR',
        '07' => 'EP',
        '08' => 'FM',
        '09' => 'GD',
        '10' => 'IN',
        '11' => 'IB',
        '12' => 'LP',
        '13' => 'LE',
        '14' => 'OC',
        '15' => 'OL',
        '16' => 'SB',
        '17' => 'VA',
        '18' => 'YO',
    ],
    'HR' => [
        '01' => '07',
        '02' => '12',
        '03' => '19',
        '04' => '18',
        '05' => '04',
        '06' => '06',
        '07' => '02',
        '08' => '09',
        '09' => '20',
        '10' => '14',
        '11' => '11',
        '12' => '08',
        '13' => '15',
        '14' => '03',
        '15' => '17',
        '16' => '05',
        '17' => '10',
        '18' => '16',
        '19' => '13',
        '20' => '01',
        '21' => '21',
    ],
    'HT' => [
        '03' => 'NO',
        '06' => 'AR',
        '07' => 'CE',
        '09' => 'ND',
        '10' => 'NE',
        '11' => 'OU',
        '12' => 'SD',
        '13' => 'SE',
        '14' => 'GA',
        '15' => 'NI',
    ],
    'HU' => [
        '01' => 'BK', // Bacs-Kiskun
        '02' => 'BA', // Baranya
        '03' => 'BE', // Bekes
        '04' => 'BZ', // Borsod-Abauj-Zemplen
        '05' => 'BU', // Budapest
        '06' => 'CS', // Csongrad
        '07' => 'DE', // Debrecen
        '08' => 'FE', // Fejer
        '09' => 'GS', // Gyor-Moson-Sopron
        '10' => 'HB', // Hajdu-Bihar
        '11' => 'HE', // Heves
        '12' => 'KE', // Komarom-Esztergom
        '13' => 'MI', // Miskolc
        '14' => 'NO', // Nograd
        '15' => 'PS', // Pecs
        '16' => 'PE', // Pest
        '17' => 'SO', // Somogy
        '18' => 'SZ', // Szabolcs-Szatmar-Bereg
        '19' => 'SD', // Szeged
        '20' => 'JN', // Jasz-Nagykun-Szolnok
        '21' => 'TO', // Tolna
        '22' => 'VA', // Vas
        '23' => 'VE', // Veszprem
        '24' => 'ZA', // Zala
        '25' => 'GY', // Gyor
        '26' => 'BC', // Bekescsaba
        '27' => 'DU', // Dunaujvaros
        '28' => 'EG', // Eger
        '29' => 'HV', // Hodmezovasarhely
        '30' => 'KV', // Kaposvar
        '31' => 'KM', // Kecskemet
        '32' => 'NK', // Nagykanizsa
        '33' => 'NY', // Nyiregyhaza
        '34' => 'SN', // Sopron
        '35' => 'SF', // Szekesfehervar
        '36' => 'SK', // Szolnok
        '37' => 'SH', // Szombathely
        '38' => 'TB', // Tatabanya
        '39' => 'VE', // Veszprem
        '40' => 'ZE', // Zalaegerszeg
        '41' => 'ST', // Salgotarjan
        '42' => 'SS', // Szekszard
        '43' => 'ER', // Erd
    ],
    'ID' => [
        '01' => 'AC',
        '02' => 'BA',
        '03' => 'BE',
        '04' => 'JK',
        '05' => 'JA',
        '07' => 'JT',
        '08' => 'JI',
        '10' => 'YO',
        '11' => 'KB',
        '12' => 'KS',
        '13' => 'KT',
        '14' => 'KI',
        '15' => 'LA',
        '17' => 'NB',
        '18' => 'NT',
        '21' => 'ST',
        '22' => 'SG',
        '24' => 'SB',
        '26' => 'SU',
        '28' => 'MA',
        '29' => 'MU',
        '30' => 'JB',
        '31' => 'SA',
        '32' => 'SS',
        '33' => 'BT',
        '34' => 'GO',
        '35' => 'BB',
        '36' => 'PA',
        '37' => 'RI',
        '38' => 'SN',
        '39' => 'PB',
        '40' => 'KR',
        '41' => 'SR',
    ],
    'IE' => [
        '01' => 'CW',
        '02' => 'CN',
        '03' => 'CE',
        '04' => 'CO',
        '06' => 'DL',
        '07' => 'D',
        '10' => 'G',
        '11' => 'KY',
        '12' => 'KE',
        '13' => 'KK',
        '14' => 'LM',
        '15' => 'LS',
        '16' => 'LK',
        '18' => 'LD',
        '19' => 'LH',
        '20' => 'MO',
        '21' => 'MH',
        '22' => 'MN',
        '23' => 'OY',
        '24' => 'RN',
        '25' => 'SO',
        '26' => 'TA',
        '27' => 'WD',
        '29' => 'WH',
        '30' => 'WX',
        '31' => 'WW',
    ],
    'IL' => [
        '01' => 'D',
        '02' => 'M',
        '03' => 'Z',
        '04' => 'HA',
        '05' => 'TA',
        '06' => 'JM',
    ],
    'IN' => [
        '01' => 'AN',
        '02' => 'AP',
        '03' => 'AS',
        '05' => 'CH',
        '06' => 'DN',
        '07' => 'DL',
        '09' => 'GJ',
        '10' => 'HR',
        '11' => 'HP',
        '12' => 'JK',
        '13' => 'KL',
        '14' => 'LD',
        '16' => 'MH',
        '17' => 'MN',
        '18' => 'ML',
        '19' => 'KA',
        '20' => 'NL',
        '21' => 'OR',
        '22' => 'PY',
        '23' => 'PB',
        '24' => 'RJ',
        '25' => 'TN',
        '26' => 'TR',
        '28' => 'WB',
        '29' => 'SK',
        '30' => 'AR',
        '31' => 'MZ',
        '32' => 'DD',
        '33' => 'GA',
        '34' => 'BR',
        '35' => 'MP',
        '36' => 'UP',
        '37' => 'CT',
        '38' => 'JH',
        '39' => 'UT',
    ],
    'IQ' => [
        '01' => 'AN',
        '02' => 'BA',
        '03' => 'MU',
        '04' => 'QA',
        '05' => 'SU',
        '06' => 'BB',
        '07' => 'BG',
        '08' => 'DA',
        '09' => 'DQ',
        '10' => 'DI',
        '11' => 'AR',
        '12' => 'KA',
        '13' => 'KI',
        '14' => 'MA',
        '15' => 'NI',
        '16' => 'WA',
        '17' => 'NA',
        '18' => 'SD',
    ],
    'IR' => [
        // mapping based on wikidata and on manual name matches
        '01' => '02', // Āz̄arbāyjān-e Gharbī Province
        '03' => '08', // Chahār Maḩāll va Bakhtīār Province
        '04' => '13', // Sīstān va Balūchestān Province
        '05' => '18', // Kohgīlūyeh va Būyer Aḩmad Province
        '07' => '14', // Fārs Province
        '08' => '19', // Gīlān Province
        '09' => '24', // Hamadān Province
        '10' => '05', // Īlām Province
        '11' => '23', // Hormozgān Province
        '13' => '17', // Kermānshāh Province
        '15' => '10', // Khūzestān Province
        '16' => '16', // Kordestān Province
        '22' => '06', // Būshehr Province
        '23' => '20', // Lorestān Province
        '25' => '12', // Semnān Province
        '26' => '07', // Tehrān Province
        '28' => '04', // Eşfahān Province
        '29' => '15', // Kermān Province
        '32' => '03', // Ardabīl Province
        '33' => '01', // Āz̄arbāyjān-e Sharqī Province
        '34' => '22', // Markaz Province
        '35' => '21', // Māzandarān Province
        '36' => '11', // Zanjān Province
        '37' => '27', // Golestān Province
        '38' => '28', // Qazvīn Province
        '39' => '26', // Qom Province
        '40' => '25', // Yazd Province
        '41' => '29', // Khorāsān-e Janūbī Province
        '42' => '30', // Khorāsān-e Razavī Province
        '43' => '31', // Khorāsān-e Razavī Province
        '44' => '32', // Alborz Province

        // invalid codes  [used by maxmind]
        '12' => '15', // Kerman
        '17' => '21', // Mazandaran
        '18' => '12', // Semnan Province
        '19' => '22', // Markazi
        '21' => '11', // Zanjan
        '24' => '22', // Markazi
        '27' => '11', // Zanjan
        '30' => '', // Khorasan  [split up]
        '31' => '25', // Yazd
    ],
    'IS' => [
        // codes contained in maxmind file, but actually no valid FIPS codes anymore
        // mapping roughly based on the maps of Wikipedia
        '03' => '8', // Arnessysla
        '05' => '5', // Austur-Hunavatnssysla
        '06' => '7', // Austur-Skaftafellssysla
        '07' => '3', // Borgarfjardarsysla
        '09' => '6', // Eyjafjardarsysla
        '10' => '2', // Gullbringusysla
        '15' => '1', // Kjosarsysla
        '17' => '3', // Myrasysla
        '20' => '7', // Nordur-Mulasysla
        '21' => '6', // Nordur-Tingeyjarsysla
        '23' => '8', // Rangarvallasysla
        '28' => '5', // Skagafjardarsysla
        '29' => '3', // Snafellsnes- og Hnappadalssysla
        '30' => '4', // Strandasysla
        '31' => '7', // Sudur-Mulasysla
        '32' => '6', // Sudur-Tingeyjarsysla
        '34' => '4', // Vestur-Bardastrandarsysla
        '35' => '5', // Vestur-Hunavatnssysla
        '36' => '4', // Vestur-Isafjardarsysla
        '37' => '8', // Vestur-Skaftafellssysla
        // valid FIPS codes
        '38' => '7', // Austurland
        '39' => '1', // Hofuoborgarsvaoio
        '40' => '6', // Norourland Eystra
        '41' => '5', // Norourland Vestra
        '42' => '8', // Suourland
        '43' => '2', // Suournes
        '44' => '4', // Vestfiroir
        '45' => '3', // Vesturland
    ],
    'IT' => [
        '01' => '65',
        '02' => '77',
        '03' => '78',
        '04' => '72',
        '05' => '45',
        '06' => '36',
        '07' => '62',
        '08' => '42',
        '09' => '25',
        '10' => '57',
        '11' => '67',
        '12' => '21',
        '13' => '75',
        '14' => '88',
        '15' => '82',
        '16' => '52',
        '17' => '32',
        '18' => '55',
        '19' => '23',
        '20' => '34',
    ],
    'JM' => [
        '01' => '13',
        '02' => '09',
        '04' => '12',
        '07' => '04',
        '08' => '02',
        '09' => '06',
        '10' => '14',
        '11' => '11',
        '12' => '08',
        '13' => '05',
        '14' => '03',
        '15' => '07',
        '16' => '10',
        '17' => '01',
    ],
    'JO' => [
        '02' => 'BA',
        '09' => 'KA',
        '12' => 'AT',
        '15' => 'MA',
        '16' => 'AM',
        '17' => 'AZ',
        '18' => 'IR',
        '19' => 'MN',
        '20' => 'AJ',
        '21' => 'AQ',
        '22' => 'JA',
        '23' => 'MD',
    ],
    'JP' => [
        '01' => '23',
        '02' => '05',
        '03' => '02',
        '04' => '12',
        '05' => '38',
        '06' => '18',
        '07' => '40',
        '08' => '07',
        '09' => '21',
        '10' => '10',
        '11' => '34',
        '12' => '01',
        '13' => '28',
        '14' => '08',
        '15' => '17',
        '16' => '03',
        '17' => '37',
        '18' => '46',
        '19' => '14',
        '20' => '39',
        '21' => '43',
        '22' => '26',
        '23' => '24',
        '24' => '04',
        '25' => '45',
        '26' => '20',
        '27' => '42',
        '28' => '29',
        '29' => '15',
        '30' => '44',
        '31' => '33',
        '32' => '27',
        '33' => '41',
        '34' => '11',
        '35' => '25',
        '36' => '32',
        '37' => '22',
        '38' => '09',
        '39' => '36',
        '40' => '13',
        '41' => '31',
        '42' => '16',
        '43' => '30',
        '44' => '06',
        '45' => '35',
        '46' => '19',
        '47' => '47',
    ],
    'KE' => [
        // completely reorganized in 2014
        '01' => '',
        '02' => '',
        '03' => '',
        '05' => '',
        '06' => '',
        '07' => '',
        '08' => '',
        '09' => '',
    ],
    'KG' => [
        '01' => 'GB', // Bishkek
        '02' => 'C', // Chuy
        '03' => 'J', // Jalal-Abad
        '04' => 'N', // Naryn
        '06' => 'T', // Talas
        '07' => 'Y', // Ysyk-Kol
        '08' => 'GO', // Osh
        '09' => 'B', // Batken

        // [invalid code]
        '05' => 'GO', // Osh
    ],
    'KH' => [
        '02' => '3',
        '03' => '4',
        '04' => '5',
        '05' => '6',
        '07' => '8',
        '08' => '9',
        '09' => '10',
        '10' => '11',
        '12' => '15',
        '13' => '13',
        '14' => '14',
        '17' => '19',
        '18' => '20',
        '19' => '21',
        '22' => '12',
        '23' => '16',
        '25' => '1',
        '28' => '18',
        '29' => '2',
        '30' => '24',

        // invalid codes [used by maxmind] (mapped based on the names)
        '01' => '2', // Batdambang
        '06' => '7', // Kampot
        '11' => '12', // Phnum Penh
        '15' => '16', // Ratanakiri Kiri
        '16' => '17', // Siem Reap
    ],
    'KI' => [
        '01' => 'G',
        '02' => 'L',
        '03' => 'P',
    ],
    'KM' => [
        '01' => 'A',
        '02' => 'G',
        '03' => 'M',
    ],
    'KN' => [
        '01' => '01',
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
        '09' => '09',
        '10' => '10',
        '11' => '11',
        '12' => '12',
        '13' => '13',
        '15' => '15',
    ],
    'KP' => [
        // mapping based on names an wikipedia pages
        '01' => '04', // Chagang-do
        '03' => '08', // Hamgyong-namdo
        '06' => '05', // Hwanghae-namdo
        '07' => '09', // Hwanghae-bukto
        '08' => '06', // Kaesong-si
        '09' => '07', // Kangwon-do
        '11' => '09', // P'yongan-bukto
        '12' => '01', // P'yongyang-si
        '13' => '10', // Yanggang-do
        '14' => '14', // Namp'o-si
        '15' => '02', // P'yongan-namdo
        '17' => '09', // Hamgyong-bukto
        '18' => '13', // Najin Sonbong-si
    ],
    'KR' => [
        '01' => '49',
        '03' => '45',
        '05' => '43',
        '06' => '42',
        '10' => '26',
        '11' => '11',
        '12' => '28',
        '13' => '41',
        '14' => '47',
        '15' => '27',
        '16' => '46',
        '17' => '44',
        '18' => '29',
        '19' => '30',
        '20' => '48',
        '21' => '31',
    ],
    'KW' => [
        '01' => 'AH',
        '02' => 'KU',
        '05' => 'JA',
        '07' => 'FA',
        '08' => 'HA',
        '09' => 'MU',
    ],
    'KY' => [
        // Cayman Islands do not have an ISO regions
        '01' => '',
        '02' => '',
        '03' => '',
        '04' => '',
        '05' => '',
        '06' => '',
        '07' => '',
        '08' => '',
    ],
    'KZ' => [
        '01' => 'ALM',
        '02' => 'ALA',
        '03' => 'AKM',
        '04' => 'AKT',
        '05' => 'AST',
        '06' => 'ATY',
        '07' => 'ZAP',
        '08' => 'BAY',
        '09' => 'MAN',
        '10' => 'YUZ',
        '11' => 'PAV',
        '12' => 'KAR',
        '13' => 'KUS',
        '14' => 'KZY',
        '15' => 'VOS',
        '16' => 'SEV',
        '17' => 'ZHA',
    ],
    'LA' => [
        '01' => 'AT',
        '02' => 'CH',
        '03' => 'HO',
        '07' => 'OU',
        '13' => 'XA',
        '14' => 'XI',
        '17' => 'LP',

        // valid codes [not used by maxmind]
        '18' => 'PH', // Phôngsali Province
        '19' => 'SL', // Salavan Province
        '20' => 'SV', // Savannakhét Province
        '22' => 'BK', // Bokèo Province
        '23' => 'BL', // Bolikhamxai Province
        '24' => 'VI', // Viangchan Municipality
        '25' => 'XS', // Xaisômboun Special Zone
        '26' => 'XE', // Xékong Province
        '27' => 'VI', // Vientiane Province

        // invalid codes [used by maxmind] (mapped based on the names)
        '04' => 'KH', //Khammouan
        '05' => 'LM', //Louang Namtha
        '08' => 'PH', //Phongsali
        '09' => 'SL', //Saravan
        '10' => 'SV', //Savannakhet
        '11' => 'VI', //Vientiane
    ],
    'LB' => [
        '04' => 'BA',
        '05' => 'JL',
        '06' => 'JA',
        '07' => 'NA',
        '08' => 'BI',
        '09' => 'AS',
        '10' => 'AK',
        '11' => 'BH',

        // invalid codes [used by maxmind]
        '01' => 'BI', // Beqaa
        '02' => 'JA', // Al Janub
        '03' => 'AS', // Liban-Nord
    ],
    'LC' => [
        '01' => '01',
        '02' => '', // [split up]
        '03' => '02',
        '04' => '03',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
        '09' => '10',
        '10' => '11',
        '11' => '', // [split up]
    ],
    'LI' => [
        '01' => '01',
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
        '09' => '09',
        '10' => '10',
        '11' => '11',

        // codes screwed up by maxmind
        // Based on the names they seem to be from Liberia, so remove them
        '21' => '', // Gbarpolu
        '22' => '', // River Gee
    ],
    'LK' => [
        // valid FIPS codes  [not used by maxmind]
        '01' => '52', // Amparai District
        '02' => '71', // Anuradhapura District
        '03' => '81', // Badulla District
        '04' => '51', // Batticaloa District
        '06' => '31', // Galle District
        '07' => '33', // Hambantota District
        '09' => '13', // Kalutara District
        '10' => '21', // Kandy District
        '11' => '92', // Kegalla District
        '12' => '61', // Kurunegala District
        '14' => '22', // Matale District
        '15' => '32', // Matara District
        '16' => '82', // Moneragala District
        '17' => '23', // Nuwara Eliya District
        '18' => '72', // Polonnaruwa District
        '19' => '62', // Puttalam District
        '20' => '91', // Ratnapura District
        '21' => '53', // Trincomalee District
        '23' => '11', // Colombo District
        '24' => '12', // Gampaha District
        '25' => '41', // Jaffna District
        '26' => '43', // Mannar District
        '27' => '45', // Mullaittivu District
        '28' => '44', // Vavuniya District

        // invalid codes [use by maxmind]
        '29' => '2', // Central
        '30' => '7', // North Central
        '32' => '6', // North Western
        '33' => '9', // Sabaragamuwa
        '34' => '3', // Southern
        '35' => '8', // Uva
        '36' => '1', // Western
        '37' => '5', // Eastern
        '38' => '4', // Northern
    ],
    'LR' => [
        '01' => 'BG',
        '09' => 'NI',
        '10' => 'SI',
        '11' => 'GB',
        '12' => 'CM',
        '13' => 'MY',
        '14' => 'MO',
        '17' => 'MG',
        '18' => 'RI',
        '19' => 'GG',
        '20' => 'LO',
        '21' => 'GP',
        '22' => 'RG',

        // valid codes  [not used by maxmind]
        '15' => 'BM',
        '16' => 'GK',

        // invalid codes  [used by maxmind]
        '04' => 'CM', // Grand Cape Mount
        '05' => 'LO', // Lofa
        '06' => 'MY', // Maryland
        '07' => 'MO', // Monrovia  [capital city in region Montserrado]
    ],
    'LS' => [
        '10' => 'D',
        '11' => 'B',
        '12' => 'C',
        '13' => 'E',
        '14' => 'A',
        '15' => 'F',
        '16' => 'J',
        '17' => 'H',
        '18' => 'G',
        '19' => 'K',
    ],
    'LT' => [
        '56' => 'AL',
        '57' => 'KU',
        '58' => 'KL',
        '59' => 'MR',
        '60' => 'PN',
        '61' => 'SA',
        '62' => 'TA',
        '63' => 'TE',
        '64' => 'UT',
        '65' => 'VL',
    ],
    'LU' => [
        // completely reorganized in 2015
        '01' => '',
        '02' => '',
        '03' => '',
    ],
    'LV' => [
        // mapping based on the names on wikipedia
        '01' => '002', // Aizkraukles
        '02' => '007', // Aluksnes
        '03' => '015', // Balvu
        '04' => '016', // Bauskas
        '05' => '022', // Cesu
        '06' => 'DGV', // Daugavpils
        '07' => '025', // Daugavpils
        '08' => '026', // Dobeles
        '09' => '033', // Gulbenes
        '10' => '042', // Jekabpils
        '11' => 'JEL', // Jelgava
        '12' => '041', // Jelgavas
        '13' => 'JUR', // Jurmala
        '14' => '047', // Kraslavas
        '15' => '050', // Kuldigas
        '16' => 'LPX', // Liepaja
        '17' => '', // Liepajas [splitted in 2009 and not mappable]
        '18' => '054', // Limbazu
        '19' => '058', // Ludzas
        '20' => '059', // Madonas
        '21' => '067', // Ogres
        '22' => '073', // Preilu
        '23' => 'REZ', // Rezekne
        '24' => '077', // Rezeknes
        '25' => 'RIX', // Riga
        '26' => '', // Rigas  [splitted in 2009 and not mappable]
        '27' => '088', // Saldus
        '28' => '097', // Talsu
        '29' => '099', // Tukuma
        '30' => '101', // Valkas
        '31' => 'VMR', // Valmieras
        '32' => 'VEN', // Ventspils
        '33' => '106', // Ventspils
    ],
    'LY' => [
        '03' => 'JI', // Al Aziziyah  [part of Jafara since 2009]
        '05' => 'JU', // Al Jufrah
        '08' => 'KF', // Al Kufrah
        '13' => 'WS', // Ash Shati'
        '30' => 'MQ', // Murzuq
        '34' => 'SB', // Sabha
        '41' => 'MQ', // Tarhunah  [occupied by Tarhuna wa Msalata and transformed to Murqub in 2009]
        '42' => 'BU', // Tubruq
        '45' => 'MI', // Zlitan  [part of Misrata since 2009]
        '47' => 'WA', // Ajdabiya  [included in Al Wāḩāt since 2007]
        '48' => 'MJ', // Al Fatih  [some parts are in Marj]
        '49' => 'JA', // Al Jabal al Akhdar
        '50' => 'MB', // Al Khums  [seems to be part of Al Marqab]
        '51' => 'NQ', // An Nuqat al Khams
        '52' => 'WD', // Awbari  [part of Wadi al Hayaa]
        '53' => 'ZA', // Az Zawiyah
        '54' => 'BA', // Banghazi
        '55' => 'DR', // Darnah
        '56' => 'NL', // Ghadamis  [part of Nalut]
        '57' => 'JG', // Gharyan  [part of Jabal al Gharbi  since 2007]
        '58' => 'MI', // Misratah
        '59' => '', // Sawfajjin   [split between Sirte and Misrata]
        '60' => 'SR', // Surt
        '61' => 'TB', // Tarabulus
        '62' => '', // Yafran  [split between Jabal al Gharbi and Nalut]
    ],
    'MA' => [
        '45' => '08',
        '46' => '05',
        '47' => '11',
        '48' => '06',
        '49' => '07',
        '50' => '09',
        '51' => '10',
        '52' => '02',
        '53' => '14',
        '54' => '04',
        '55' => '13',
        '56' => '12',
        '57' => '01',
        '58' => '03',
        '59' => '15',
    ],
    'MC' => [
        // there are no fips codes for Monaco
        // those were used by maxind
        '01' => 'CO', // La Condamine
        '02' => 'MO', // Monaco
        '03' => 'MC', // Monte-Carlo
    ],
    'MD' => [
        '51' => 'GA',
        '57' => 'CU', // Chisinau
        '58' => 'SN', // Stinga Nistrului
        '59' => 'AN',
        '60' => 'BA',
        '61' => 'BS',
        '62' => 'BD',
        '63' => 'BR',
        '64' => 'CA',
        '65' => 'CT',
        '66' => 'CL', // Calarasi
        '67' => 'CS',
        '68' => 'CM', // Cimislia
        '69' => 'CR',
        '70' => 'DO',
        '71' => 'DR',
        '72' => 'DU',
        '73' => 'ED',
        '74' => 'FA',
        '75' => 'FL', // Floresti
        '76' => 'GL',
        '77' => 'HI',
        '78' => 'IA',
        '79' => 'LE',
        '80' => 'NI',
        '81' => 'OC',
        '82' => 'OR',
        '83' => 'RE',
        '84' => 'RI',
        '85' => 'SI',
        '86' => 'SD',
        '87' => 'SO',
        '88' => 'SV',
        '89' => 'ST',
        '90' => 'TA', // Taraclia
        '91' => 'TE',
        '92' => 'UN', // Ungheni
    ],
    'MG' => [
        '01' => 'D', // Antsiranana
        '02' => 'F', // Fianarantsoa
        '03' => 'M', // Mahajanga
        '04' => 'A', // Toamasina
        '05' => 'T', // Antananarivo
        '06' => 'U', // Toliara
    ],
    'MK' => [
        '01' => '02', // Aracinovo
        '02' => '55', // Bac  [now part of Novaci]
        '03' => '22', // Belcista  [now Debarca]
        '04' => '03', // Berovo
        '05' => '04', // Bistrica  [city in Bitola]
        '06' => '04', // Bitola
        '07' => '14', // Blatec  [now part of Vinica]
        '08' => '05', // Bogdanci
        '09' => '80', // Bogomila  [city in Caska]
        '10' => '03', // Bogovinje
        '11' => '07', // Bosilovo
        '12' => '08', // Brvenica
        '14' => '04', // Capari [city in Bitola]
        '15' => '80', // Caska
        '16' => '19', // Cegrane  [city in Gostivar]
        '19' => '81', // Cesinovo
        '20' => '82', // Cucer-Sandevo
        '21' => '21', // Debar
        '22' => '23', // Delcevo
        '23' => '72', // Delogozdi  [city in Struga]
        '24' => '25', // Demir Hisar
        '25' => '24', // Demir Kapija
        '26' => '53', // Dobrusevo  [city in Moglia]
        '27' => '19', // Dolna Banjica  [city in Gostivar]
        '28' => '27', // Dolneni
        '30' => '40', // Drugovo  [merged with Kicevo]
        '31' => '76', // Dzepciste  [city in Tetovo]
        '33' => '18', // Gevgelija
        '34' => '19', // Gostivar
        '35' => '20', // Gradsko
        '36' => '34', // Ilinden
        '37' => '80', // Izvor  [attached to Caska]
        '38' => '35', // Jegunovce
        '39' => '03', // Kamenjane  [city in Bogovinje]
        '40' => '37', // Karbinci
        '41' => '85', // Karpos  [now in Skopje]
        '42' => '36', // Kavadarci
        '43' => '40', // Kicevo
        '44' => '85', // Kisela Voda  [now in Skopje]
        '45' => '', // Klecevce  [attached to Klecevce and Staro Nagoricane]
        '46' => '42', // Kocani
        '47' => '41', // Konce
        '48' => '85', // Kondovo  [now in Skopje]
        '49' => '36', // Konopiste  [city in Kavadarci]
        '50' => '58', // Kosel  [city in Ohrid]
        '51' => '43', // Kratovo
        '52' => '44', // Kriva Palanka
        '53' => '45', // Krivogastani
        '54' => '46', // Krusevo
        '55' => '73', // Kuklis  [city in Strumica]
        '56' => '04', // Kukurecani  [city in Bitola]
        '57' => '47', // Kumanovo
        '58' => '72', // Labunista  [city in Struga]
        '59' => '48', // Lipkovo
        '60' => '49', // Lozovo
        '61' => '72', // Lukovo  [city in Struga]
        '62' => '51', // Makedonska Kamenica
        '63' => '52', // Makedonski Brod
        '64' => '50', // Mavrovi Anovi  [city in Mavrovo i Rostuša]
        '65' => '22', // Meseista  [city in Debarca]
        '66' => '18', // Miravci  [city in Gevgelija]
        '67' => '53', // Mogila
        '68' => '73', // Murtino  [splitted between Strumica and Bosilovo; major part in Strumica]
        '69' => '54', // Negotino
        '70' => '54', // Negotino-Polosko
        '71' => '55', // Novaci
        '72' => '56', // Novo Selo
        '73' => '81', // Oblesevo
        '74' => '58', // Ohrid
        '75' => '47', // Orasac  [city in Kumanovo]
        '76' => '48', // Orizari  [city in Lipkovo]
        '77' => '40', // Oslomej  [city in Kičevo]
        '78' => '60', // Pehcevo
        '79' => '59', // Petrovec
        '80' => '61', // Plasnica
        '81' => '64', // Podares  [city in Rodavis]
        '82' => '62', // Prilep
        '83' => '63', // Probistip
        '84' => '64', // Radovis
        '85' => '65', // Rankovce
        '86' => '66', // Resen
        '87' => '67', // Rosoman
        '88' => '50', // Rostusa  [city in Mavrovo i Rostuša]
        '89' => '', // Samokov  [city in Sofia]   ?????????????????????
        '90' => '85', // Saraj  [now in Skopje]
        '91' => '76', // Sipkovica  [city in Tetovo]
        '92' => '70', // Sopiste
        '93' => '25', // Sopotnica  [city in Demir Hisar]
        '94' => '19', // Srbinovo  [city in Gostivar]
        '95' => '55', // Staravina  [city in Novaci]
        '96' => '26', // (Star) Dojran
        '97' => '71', // Staro Nagoricane
        '98' => '83', // Stip
        '99' => '72', // Struga
        'A1' => '73', // Strumica
        'A2' => '73', // Studenicani
        'A3' => '85', // Suto Orizari  [now in Skopje]
        'A4' => '69', // Sveti Nikole
        'A5' => '75', // Tearce
        'A6' => '76', // Tetovo
        'A7' => '62', // Topolcani  [city in Prilep]
        'A8' => '10', // Valandovo
        'A9' => '11', // Vasilevo
        'B1' => '16', // Veles
        'B2' => '72', // Velesta  [city in Struga]
        'B3' => '12', // Vevcani
        'B4' => '14', // Vinica
        'B5' => '62', // Vitoliste  [city in Prilep]
        'B6' => '40', // Vranestica  [now in Kicevo]
        'B7' => '16', // Vrapciste
        'B8' => '35', // Vratnica  [city in Jegunovce]
        'B9' => '19', // Vrutok  [city in Gostivar]
        'C1' => '40', // Zajas  [now in Kicevo]
        'C2' => '32', // Zelenikovo
        'C3' => '30', // Zelino
        'C4' => '27', // Zitose  [city in Dolneni]
        'C5' => '63', // Zletovo  [city in Probistip]
        'C6' => '33', // Zrnovci

        // invalid codes  [used by maxmind]
        '13' => '85', // Cair  [now in Skopje]
        '17' => '78', // Centar
        '18' => '78', // Centar Zupa
        '29' => '85', // Dorce Petrov  [now in Skopje]
        '32' => '85', // Gazi Baba  [now in Skopje]
        'C8' => '85', // Cair  [now in Skopje]
        'C9' => '80', // Caska
        'D2' => '21', // Debar
        'D3' => '25', // Demir Hisar
        'D4' => '19', // Gostivar
        'D5' => '35', // Jegunovce
        'D6' => '36', // Kavadarci
        'D7' => '47', // Kumanovo
        'D8' => '52', // Makedonski Brod
        'E2' => '58', // Ohrid
        'E3' => '62', // Prilep
        'E5' => '26', // Dojran
        'E6' => '72', // Struga
        'E7' => '73', // Strumica
        'E8' => '76', // Tetovo
        'E9' => '10', // Valandovo
        'F1' => '13', // Veles
        'F2' => '85', // Aerodrom  [now in Skopje]
    ],
    'ML' => [
        '01' => 'BKO',
        '03' => '1',
        '04' => '5',
        '05' => '4',
        '06' => '3',
        '07' => '2',
        '08' => '6',
        '09' => '7',
        '10' => '8',
    ],
    'MM' => [
        '01' => '16', // Rakhine State
        '02' => '14', // Chin State
        '03' => '07', // Irrawaddy
        '04' => '11', // Kachin State
        '05' => '13', // Karan State
        '06' => '12', // Kayah State
        '08' => '04', // Mandalay
        '10' => '01', // Sagaing
        '11' => '17', // Shan State
        '12' => '05', // Tenasserim
        '13' => '15', // Mon State
        '17' => '06', // Yangon

        // invalid codes  [used by maxmind]
        '07' => '03', // Magwe
        '09' => '02', // Pegu
        '14' => '06', // Rangoon

        // valid codes  [not used by maxmind]
        '15' => '03', // Magway Division
        '16' => '02', // Bago Division
    ],
    'MN' => [
        '01' => '073', // Arhangay
        '02' => '069', // Bayanhongor
        '03' => '071', // Bayan-Olgiy
        '06' => '061', // Dornod
        '07' => '063', // Dornogovi
        '08' => '059', // Dundgovi
        '09' => '057', // Dzavhan
        '10' => '065', // Govi-Altay
        '11' => '039', // Hentiy
        '12' => '043', // Hovd
        '13' => '041', // Hovsgol
        '14' => '053', // Omnogovi
        '15' => '055', // Ovorhangay
        '16' => '049', // Selenge
        '17' => '051', // Suhbaatar
        '18' => '047', // Tov
        '19' => '046', // Uvs
        '20' => '1', // Ulaanbaatar
        '21' => '067', // Bulgan
        '23' => '037', // Darhan-Uul
        '24' => '064', // Govisumber
        '25' => '035', // Orhon

        // invalid codes  [used by maxmind]
        '05' => '037', // Darhan
        '22' => '035', // Erdenet  [city in Orkhon]
    ],
    'MO' => [
        // No ISO codes assigned for Macau
        '01' => '', // Ilhas
        '02' => '', // Macau
    ],
    'MR' => [
        '01' => '01',
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
        '09' => '09',
        '10' => '10',
        '11' => '11',
        '12' => '12',
    ],
    'MS' => [
        // No ISO codes assigned for Montserrat
        '01' => '',
        '02' => '',
        '03' => '',
    ],
    'MU' => [
        '12' => 'BL',
        '13' => 'FL',
        '14' => 'GP',
        '15' => 'MO',
        '16' => 'PA',
        '17' => 'PW',
        '18' => 'PL',
        '19' => 'RR',
        '20' => 'SA',
        '21' => 'AG',
        '22' => 'CC',
        '23' => 'RO',
    ],
    'MV' => [
        '01' => '01',
        '05' => '05',
        '30' => '02',
        '31' => '20',
        '32' => '17',
        '33' => '14',
        '34' => '27',
        '35' => '28',
        '36' => '07',
        '37' => '23',
        '38' => '26',
        '39' => '03',
        '40' => 'MLE',
        '41' => '12',
        '42' => '29',
        '43' => '25',
        '44' => '13',
        '45' => '24',
        '46' => '08',
        '47' => '04',
    ],
    'MW' => [
        '02' => 'CK', // Chikwawa
        '03' => 'CR', // Chiradzulu
        '04' => 'CT', // Chitipa
        '05' => 'TH', // Thyolo
        '06' => 'DE', // Dedza
        '07' => 'DO', // Dowa
        '08' => 'KR', // Karonga
        '09' => 'KS', // Kasungu
        '11' => 'LI', // Lilongwe
        '12' => 'MG', // Mangochi
        '13' => 'MC', // Mchinji
        '15' => 'MZ', // Mzimba
        '16' => 'NU', // Ntcheu
        '17' => 'NB', // Nkhata Bay
        '18' => 'NK', // Nkhotakota
        '19' => 'NS', // Nsanje
        '20' => 'NI', // Ntchisi
        '21' => 'RU', // Rumphi
        '22' => 'SA', // Salima
        '23' => 'ZO', // Zomba
        '24' => 'BL', // Blantyre
        '25' => 'MW', // Mwanza
        '26' => 'BA', // Balaka
        '27' => 'LK', // Likoma
        '28' => 'MH', // Machinga
        '29' => 'MU', // Mulanje
        '30' => 'PH', // Phalombe
    ],
    'MX' => [
        '01' => 'AGU',
        '02' => 'BCN',
        '03' => 'BCS',
        '04' => 'CAM',
        '05' => 'CHP',
        '06' => 'CHH',
        '07' => 'COA',
        '08' => 'COL',
        '09' => 'CMX',
        '10' => 'DUR',
        '11' => 'GUA',
        '12' => 'GRO',
        '13' => 'HID',
        '14' => 'JAL',
        '15' => 'MEX',
        '16' => 'MIC',
        '17' => 'MOR',
        '18' => 'NAY',
        '19' => 'NLE',
        '20' => 'OAX',
        '21' => 'PUE',
        '22' => 'QUE',
        '23' => 'ROO',
        '24' => 'SLP',
        '25' => 'SIN',
        '26' => 'SON',
        '27' => 'TAB',
        '28' => 'TAM',
        '29' => 'TLA',
        '30' => 'VER',
        '31' => 'YUC',
        '32' => 'ZAC',
    ],
    'MY' => [
        '01' => '01',
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '08',
        '08' => '09',
        '09' => '07',
        '11' => '13',
        '12' => '10',
        '13' => '11',
        '14' => '14',
        '15' => '15',
        '16' => '12',
        '17' => '16',
    ],
    'MZ' => [
        '01' => 'P',
        '02' => 'G',
        '03' => 'I',
        '04' => 'L',
        '05' => 'S',
        '06' => 'N',
        '07' => 'A',
        '08' => 'T',
        '09' => 'Q',
        '10' => 'B',
        '11' => 'MPM',
    ],
    'NA' => [
        '21' => 'KH', // Windhoek  [capital city of Khomas]
        '28' => 'CA', // Caprivi (now named Zambezi)
        '29' => 'ER', // Erongo
        '30' => 'HA', // Hardap
        '31' => 'KA', // Karas
        '32' => 'KU', // Kunene
        '33' => 'OW', // Ohangwena
        '34' => '', // Okavango  [now splitted in Kavango East and West]
        '35' => 'OH', // Omaheke
        '36' => 'OS', // Omusati
        '37' => 'ON', // Oshana
        '38' => 'OT', // Oshikoto
        '39' => 'OD', // Otjozondjupa

        // invalid codes  [used by maxmind]
        '01' => 'KA', // Bethanien  [city in Karas]
        '02' => '', // Caprivi Oos  [old region, not mappable]
        '03' => '', // Boesmanland  [old region, not mappable]
        '04' => 'OH', // Gobabis  [capital of Omaheke]
        '05' => 'OD', // Grootfontein  [city in Otjozondjupa]
        '06' => 'KU', // Kaokoland  [now part of Kunene]
        '07' => 'ER', // Karibib  [city in Erongo]
        '08' => 'KA', // Keetmanshoop  [city in Karas]
        '09' => 'KA', // Luderitz  [city in Karas]
        '10' => 'HA', // Maltahohe  [city in Hardap]
        '11' => 'OD', // Okahandja  [city in Otjozondjupa]
        '12' => 'ER', // Omaruru  [city in Erongo]
        '13' => 'OD', // Otjiwarongo  [capital in Otjozondjupa]
        '14' => 'KU', // Outjo  [city in Kunene]
        '15' => '', // Owambo  [old region, not mappable]
        '16' => 'HA', // Rehoboth  [city in Hardap]
        '17' => 'ER', // Swakopmund  [city in Erongo]
        '18' => 'OT', // Tsumeb  [city in Oshikoto]
        '20' => 'KA', // Karasburg  [city in Karas]
        '22' => '', // Damaraland  [old region, not mappable]
        '23' => '', // Hereroland Oos  [old region, not mappable]
        '24' => '', // Hereroland Wes  [old region, not mappable]
        '25' => '', // Kavango  [now splitted in East and West]
        '26' => 'HA', // Mariental  [city in Hardap]
        '27' => '', // Namaland  [old region, not mappable]
    ],
    'NE' => [
        '01' => '1',
        '02' => '2',
        '03' => '3',
        '04' => '4',
        '06' => '5',
        '07' => '7',
        '08' => '8',

        // valid codes  [not used by maxmind]
        '09' => '6',

        // invalid codes  [not used by maxmind]
        '05' => '8',
    ],
    'NG' => [
        '05' => 'LA', // Lagos
        '11' => 'FC', // Federal Capital Territory
        '16' => 'OG', // Ogun
        '21' => 'AK', // Akwa Ibom
        '22' => 'CR', // Cross River
        '23' => 'KD', // Kaduna
        '24' => 'KT', // Katsina
        '25' => 'AN', // Anambra
        '26' => 'BE', // Benue
        '27' => 'BO', // Borno
        '28' => 'IM', // Imo
        '29' => 'KN', // Kano
        '30' => 'KW', // Kwara
        '31' => 'NI', // Niger
        '32' => 'OY', // Oyo
        '35' => 'AD', // Adamawa
        '36' => 'DE', // Delta
        '37' => 'ED', // Edo
        '39' => 'JI', // Jigawa
        '40' => 'KE', // Kebbi
        '41' => 'KO', // Kogi
        '42' => 'OS', // Osun
        '43' => 'TA', // Taraba
        '44' => 'YO', // Yobe
        '45' => 'AB', // Abia
        '46' => 'BA', // Bauchi
        '47' => 'EN', // Enugu
        '48' => 'ON', // Ondo
        '49' => 'PL', // Plateau
        '50' => 'RI', // Rivers
        '51' => 'SO', // Sokoto
        '52' => 'BY', // Bayelsa
        '53' => 'EB', // Ebonyi
        '54' => 'EK', // Ekiti
        '55' => 'GO', // Gombe
        '56' => 'NA', // Nassarawa
        '57' => 'ZA', // Zamfara
    ],
    'NI' => [
        '01' => 'BO',
        '02' => 'CA',
        '03' => 'CI',
        '04' => 'CO',
        '05' => 'ES',
        '06' => 'GR',
        '07' => 'JI',
        '08' => 'LE',
        '09' => 'MD',
        '10' => 'MN',
        '11' => 'MS',
        '12' => 'MT',
        '13' => 'NS',
        '14' => 'SJ',
        '15' => 'RI',
        '17' => 'AN',
        '18' => 'AS',

        // invalid codes  [used by maxmind]
        '16' => '', // Zelaya
    ],
    'NL' => [
        '01' => 'DR',
        '02' => 'FR',
        '03' => 'GE',
        '04' => 'GR',
        '05' => 'LI',
        '06' => 'NB',
        '07' => 'NH',
        '09' => 'UT',
        '10' => 'ZE',
        '11' => 'ZH',
        '15' => 'OV',
        '16' => 'FL',
    ],
    'NO' => [
        '01' => '02',
        '02' => '09',
        '04' => '06',
        '05' => '20',
        '06' => '04',
        '07' => '12',
        '08' => '15',
        '09' => '18',
        '10' => '17',
        '11' => '05',
        '12' => '03',
        '13' => '01',
        '14' => '11',
        '15' => '14',
        '16' => '16',
        '17' => '08',
        '18' => '19',
        '19' => '10',
        '20' => '07',
    ],
    'NP' => [
        '01' => 'BA', // Bagmati
        '02' => 'BH', // Bheri
        '03' => 'DH', // Dhawalagiri
        '04' => 'GA', // Gandaki
        '05' => 'JA', // Janakpur
        '06' => 'KA', // Karnali
        '07' => 'KO', // Kosi
        '08' => 'LU', // Lumbini
        '09' => 'MA', // Mahakali
        '10' => 'ME', // Mechi
        '11' => 'NA', // Narayani
        '12' => 'RA', // Rapti
        '13' => 'SA', // Sagarmatha
        '14' => 'SE', // Seti
    ],
    'NR' => [
        '01' => '01',
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
        '09' => '09',
        '10' => '10',
        '11' => '11',
        '12' => '12',
        '13' => '13',
        '14' => '14',
    ],
    'NZ' => [
        '10' => 'CIT',
        'E7' => 'AUK',
        'E8' => 'BOP',
        'E9' => 'CAN',
        'F1' => 'GIS',
        'F2' => 'HKB',
        'F3' => 'MWT',
        'F4' => 'MBH',
        'F5' => 'NSN',
        'F6' => 'NTL',
        'F7' => 'OTA',
        'F8' => 'STL',
        'F9' => 'TKI',
        'G1' => 'WKO',
        'G2' => 'WGN',
        'G3' => 'WTC',
    ],
    'OM' => [
        '01' => 'DA', // Ad Dakhiliyah
        '02' => '', // Al Batinah  [splitted in two]
        '03' => 'WU', // Al Wusta
        '04' => '', // Ash Sharqiyah
        '06' => 'MA', // Masqat  [splitted in two]
        '07' => 'MU', // Musandam
        '08' => 'ZU', // Zufar

        // valid codes  [not used by maxmind]
        '09' => 'ZA', // Ad Dhahirah
        '10' => 'BU', // Al Buraimi

        // invalid codes  [used by maxmind]
        '05' => 'ZA', // Az Zahirah
    ],
    'PA' => [
        '01' => '1',
        '02' => '4',
        '03' => '2',
        '04' => '3',
        '05' => '5',
        '06' => '6',
        '07' => '7',
        '08' => '8',
        '09' => 'KY',
        '10' => '9',
    ],
    'PE' => [
        '01' => 'AMA',
        '02' => 'ANC',
        '03' => 'APU',
        '04' => 'ARE',
        '05' => 'AYA',
        '06' => 'CAJ',
        '07' => 'CAL',
        '08' => 'CUS',
        '09' => 'HUV',
        '10' => 'HUC',
        '11' => 'ICA',
        '12' => 'JUN',
        '13' => 'LAL',
        '14' => 'LAM',
        '15' => 'LIM',
        '16' => 'LOR',
        '17' => 'MDD',
        '18' => 'MOQ',
        '19' => 'PAS',
        '20' => 'PIU',
        '21' => 'PUN',
        '22' => 'SAM',
        '23' => 'TAC',
        '24' => 'TUM',
        '25' => 'UCA',
    ],
    'PG' => [
        '01' => 'CPM',
        '02' => 'GPK',
        '03' => 'MBA',
        '04' => 'NPP',
        '05' => 'SHM',
        '06' => 'WPD',
        '07' => 'NSB',
        '08' => 'CPK',
        '09' => 'EHG',
        '10' => 'EBR',
        '11' => 'ESW',
        '12' => 'MPM',
        '13' => 'MRL',
        '14' => 'MPL',
        '15' => 'NIK',
        '16' => 'WHM',
        '17' => 'WBK',
        '18' => 'SAN',
        '19' => 'EPW',
        '20' => 'NCD',
    ],
    'PH' => [
        '01' => 'ABR', // Abra
        '02' => 'AGN', // Agusan del Norte
        '03' => 'AGS', // Agusan del Sur
        '04' => 'AKL', // Aklan
        '05' => 'ALB', // Albay
        '06' => 'ANT', // Antique
        '07' => 'BAN', // Bataan
        '08' => 'BTN', // Batanes
        '09' => 'BTG', // Batangas
        '10' => 'BEN', // Benguet
        '11' => 'BOH', // Bohol
        '12' => 'BUK', // Bukidnon
        '13' => 'BUL', // Bulacan
        '14' => 'CAG', // Cagayan
        '15' => 'CAN', // Camarines Norte
        '16' => 'CAS', // Camarines Sur
        '17' => 'CAM', // Camiguin
        '18' => 'CAP', // Capiz
        '19' => 'CAT', // Catanduanes
        '20' => 'CAV', // Cavite
        '21' => 'CEB', // Cebu
        '22' => 'BAS', // Basilan
        '23' => 'EAS', // Eastern Samar
        '24' => 'DAV', // Davao
        '25' => 'DAS', // Davao del Sur
        '26' => 'DAO', // Davao Oriental
        '27' => 'IFU', // Ifugao
        '28' => 'ILN', // Ilocos Norte
        '29' => 'ILS', // Ilocos Sur
        '30' => 'ILI', // Iloilo
        '31' => 'ISA', // Isabela
        '32' => '', // Kalinga-Apayao  [splitted in two]
        '33' => 'LAG', // Laguna
        '34' => 'LAN', // Lanao del Norte
        '35' => 'LAS', // Lanao del Sur
        '36' => 'LUN', // La Union
        '37' => 'LEY', // Leyte
        '38' => 'MAD', // Marinduque
        '39' => 'MAS', // Masbate
        '40' => 'MDC', // Mindoro Occidental
        '41' => 'MDR', // Mindoro Oriental
        '42' => 'MSC', // Misamis Occidental
        '43' => 'MSR', // Misamis Oriental
        '44' => 'MOU', // Mountain
        '45' => 'NEC', // Negros Occidental
        '46' => 'NER', // Negros Oriental
        '47' => 'NUE', // Nueva Ecija
        '48' => 'NUV', // Nueva Vizcaya
        '49' => 'PLW', // Palawan
        '50' => 'PAM', // Pampanga
        '51' => 'PAN', // Pangasinan
        '53' => 'RIZ', // Rizal
        '54' => 'ROM', // Romblon
        '55' => 'WSA', // Samar
        '56' => 'MAG', // Maguindanao
        '57' => 'NCO', // North Cotabato
        '58' => 'SOR', // Sorsogon
        '59' => 'SLE', // Southern Leyte
        '60' => 'SLU', // Sulu
        '61' => 'SUN', // Surigao del Norte
        '62' => 'SUR', // Surigao del Sur
        '63' => 'TAR', // Tarlac
        '64' => 'ZMB', // Zambales
        '65' => 'ZAN', // Zamboanga del Norte
        '66' => 'ZAS', // Zamboanga del Sur
        '67' => 'NSA', // Northern Samar
        '68' => 'QUI', // Quirino
        '69' => 'SIG', // Siquijor
        '70' => 'SCO', // South Cotabato
        '71' => 'SUK', // Sultan Kudarat
        '72' => 'TAW', // Tawitawi
        'A1' => 'PAM', // Angeles  [city in Pamganga]
        'A2' => 'NEC', // Bacolod  [city in Negros Occidental]
        'A3' => 'NEC', // Bago  [city in Negros Occidental]
        'A4' => 'BEN', // Baguio  [city in Benguet]
        'A5' => 'NER', // Bais  [city in Negros Oriental]
        'A6' => '09', // Basilan City  [city in Zamboanga Peninsula]
        'A7' => 'BTG', // Batangas City  [capital of Batangas]
        'A8' => 'AGN', // Butuan  [city in Agusan del Norte]
        'A9' => 'NUE', // Cabanatuan  [city in Nueva Ecija]
        'B1' => 'NEC', // Cadiz  [city in Negros Occidental]
        'B2' => 'MSR', // Cagayan de Oro  [city in Misamis Oriental]
        'B3' => 'WSA', // Calbayog  [city in Samar]
        'B4' => '00', // Caloocan  [part of National Capital Region]
        'B5' => 'NER', // Canlaon  [city in Negros Oriental]
        'B6' => 'CAV', // Cavite City  [capital of Cavite]
        'B7' => 'CEB', // Cebu City  [capital of Cebu]
        'B8' => 'MAG', // Cotabato  [city in Maguindanao]
        'B9' => 'PAN', // Dagupan  [city in Pangasinan]
        'C1' => 'CEB', // Danao  [city in Cebu]
        'C2' => 'ZAN', // Dapitan  [city in Zamboanga del Norte]
        'C3' => 'DAS', // Davao City  [city in Davao del Sur]
        'C4' => 'ZAN', // Dipolog  [city in Zamboanga del Norte]
        'C5' => 'NER', // Dumaguete  [city in Negros Oriental]
        'C6' => 'SCO', // General Santos  [city in South Cotabato]
        'C7' => 'MSR', // Gingoog  [city in Misamis Oriental]
        'C8' => 'LAN', // Iligan  [city in Lanao del Norte]
        'C9' => 'ILI', // Iloilo City  [capital of Iloilo]
        'D1' => 'CAS', // Iriga  [city in Camarines Sur]
        'D2' => 'NEC', // La Carlota  [city in Negros Occidental]
        'D3' => 'ILN', // Laoag  [city in Ilocos Norte]
        'D4' => 'CEB', // Lapu-Lapu  [city in Cebu]
        'D5' => 'ALB', // Legaspi  [city in Albay]
        'D6' => 'BTG', // Lipa  [city in Batangas]
        'D7' => 'QUE', // Lucena  [city in Quezon]
        'D8' => 'CEB', // Mandaue  [city in Cebu]
        'D9' => '00', // Manila  [part of National Capital Region]
        'E1' => 'LAS', // Marawi  [city in Lanao del Sur]
        'E2' => 'CAS', // Naga  [city in Camarines Sur]
        'E3' => 'ZMB', // Olongapo  [city in Zambales]
        'E4' => 'LEY', // Ormoc  [city in Leyte]
        'E5' => 'MSC', // Oroquieta  [city in Misamis Occidental]
        'E6' => 'MSC', // Ozamis  [city in Misamis Occidental]
        'E7' => 'ZAS', // Pagadian  [city in Zamboanga del Sur]
        'E8' => 'NUE', // Palayan  [city in Nueva Ecija]
        'E9' => '00', // Pasay  [part of National Capital Region]
        'F1' => 'PLW', // Puerto Princesa  [city in Palawan]
        'F2' => '00', // Quezon City  [part of National Capital Region]
        'F3' => 'CAP', // Roxas  [city in Capiz]
        'F4' => 'NEC', // San Carlos  [city in Negros Occidental]
        'F5' => 'PAN', // San Carlos  [city in Pangasinan]
        'F6' => 'NUE', // San Jose  [city in Nueva Ecija]
        'F7' => 'LAG', // San Pablo  [city in Laguna]
        'F8' => 'NEC', // Silay  [city in Negros Occidental]
        'F9' => 'SUN', // Surigao  [city in Surigao del Norte]
        'G1' => 'LEY', // Tacloban  [city in Leyte]
        'G2' => 'CAV', // Tagaytay  [city in Cavite]
        'G3' => 'BOH', // Tagbilaran  [city in Bohol]
        'G4' => 'MSC', // Tangub  [city in Misamis Occidental]
        'G5' => 'CEB', // Toledo  [city in Cebu]
        'G6' => 'CAV', // Trece Martires  [city in Cavite]
        'G7' => 'ZAS', // Zamboanga  [city in Zamboanga del Sur]
        'G8' => 'AUR', // Aurora
        'H2' => 'QUE', // Quezon
        'H3' => 'NEC', // Negros Occidental

        // invalid codes  [used by maxmind]
        'H9' => 'BIL', // Biliran
        'I6' => 'COM', // Compostela Valley
        'I7' => 'DAV', // Davao del Norte
        'J3' => 'GUI', // Guimaras
        'J4' => 'NEC', // Himamaylan  [city in Negros Occidental]
        'J7' => 'KAL', // Kalinga
        'K1' => '00', // Las Pinas  [part of National Capital Region]
        'K5' => '00', // Malabon  [part of National Capital Region]
        'K6' => 'BUK', // Malaybalay  [city in Bukidnon]
        'L4' => '00', // Muntinlupa  [part of National Capital Region]
        'L5' => '00', // Navotas  [part of National Capital Region]
        'L7' => '00', // Paranaque  [part of National Capital Region]
        'L9' => '', // Passi
        'P1' => 'ZMB', // Zambales
        'M5' => 'PAM', // San Jose del Monte  [city in Pampanga]
        'M6' => '', // San Juan  [the are many cities with this name]
        'M8' => '', // Santiago  [the are 3 cities with this name]
        'M9' => 'SAR', // Sarangani
        'N1' => 'NEC', // Sipalay  [city in Negros Occidental]
        'N3' => 'SUN', // Surigao del Norte
        'P2' => 'ZAS', // Zamboanga  [city in Zamboanga del Sur]

    ],
    'PK' => [
        '01' => 'TA',
        '02' => 'BA',
        '03' => 'KP',
        '04' => 'PB',
        '05' => 'SD',
        '06' => 'JK',
        '07' => 'GB',
        '08' => 'IS',
    ],
    'PL' => [
        '72' => 'DS',
        '73' => 'KP',
        '74' => 'LD',
        '75' => 'LU',
        '76' => 'LB',
        '77' => 'MA',
        '78' => 'MZ',
        '79' => 'OP',
        '80' => 'PK',
        '81' => 'PD',
        '82' => 'PM',
        '83' => 'SL',
        '84' => 'SK',
        '85' => 'WN',
        '86' => 'WP',
        '87' => 'ZP',
    ],
    'PS' => [
        // completely new regions
        'GZ' => '', // Gaza
        'WE' => '', // West Bank
    ],
    'PT' => [
        '02' => '01',
        '03' => '02',
        '04' => '03',
        '05' => '04',
        '06' => '05',
        '07' => '06',
        '08' => '07',
        '09' => '08',
        '10' => '30',
        '11' => '09',
        '13' => '10',
        '14' => '11',
        '16' => '12',
        '17' => '13',
        '18' => '14',
        '19' => '15',
        '20' => '16',
        '21' => '17',
        '22' => '18',
        '23' => '20',
    ],
    'PY' => [
        '01' => '10',
        '02' => '13',
        '04' => '5',
        '05' => '6',
        '06' => '11',
        '07' => '1',
        '08' => '3',
        '10' => '4',
        '11' => '7',
        '12' => '8',
        '13' => '12',
        '15' => '9',
        '16' => '15',
        '17' => '2',
        '19' => '14',
        '22' => 'ASU',
        '23' => '16',
        '24' => '19',
    ],
    'QA' => [
        '01' => 'DA', // Ad Dawhah
        '02' => 'KH', // Al Ghuwariyah  [city in Al Khawr]
        '03' => 'SH', // Al Jumaliyah  [city in Ash Shīḩānīyah]
        '04' => 'KH', // Al Khawr
        '06' => 'RA', // Ar Rayyan
        '08' => 'MS', // Madinat ach Shamal
        '09' => 'US', // Umm Salal
        '10' => 'WA', // Al Wakrah
        '11' => '', // Jariyan al Batnah  [split into two]
        '12' => 'WA', // Umm Sa'id  [city in Al Wakrah]

        // invalid codes  [used by maxmind]
        '05' => 'WA', // Al Wakrah Municipality
    ],
    'RO' => [
        '01' => 'AB',
        '02' => 'AR',
        '03' => 'AG',
        '04' => 'BC',
        '05' => 'BH',
        '06' => 'BN',
        '07' => 'BT',
        '08' => 'BR',
        '09' => 'BV',
        '10' => 'B',
        '11' => 'BZ',
        '12' => 'CS',
        '13' => 'CJ',
        '14' => 'CT',
        '15' => 'CV',
        '16' => 'DB',
        '17' => 'DJ',
        '18' => 'GL',
        '19' => 'GJ',
        '20' => 'HR',
        '21' => 'HD',
        '22' => 'IL',
        '23' => 'IS',
        '25' => 'MM',
        '26' => 'MH',
        '27' => 'MS',
        '28' => 'NT',
        '29' => 'OT',
        '30' => 'PH',
        '31' => 'SJ',
        '32' => 'SM',
        '33' => 'SB',
        '34' => 'SV',
        '35' => 'TR',
        '36' => 'TM',
        '37' => 'TL',
        '38' => 'VS',
        '39' => 'VL',
        '40' => 'VN',
        '41' => 'CL',
        '42' => 'GR',
        '43' => 'IF',
    ],
    'RS' => [
        '01' => 'KM', // Kosovo
        '02' => 'VO', // Vojvodina
    ],
    'RU' => [
        '01' => 'AD',
        '02' => 'ZAB', // Aginsky Buryatsky AO  [part of Zabaykal'skiy kray]
        '03' => 'AL',
        '04' => 'ALT',
        '05' => 'AMU',
        '06' => 'ARK',
        '07' => 'AST',
        '08' => 'BA',
        '09' => 'BEL',
        '10' => 'BRY',
        '11' => 'BU',
        '12' => 'CE',
        '13' => 'CHE',
        '14' => 'ZAB', // Chita  [part of Zabaykal'skiy kray]
        '15' => 'CHU',
        '16' => 'CU',
        '17' => 'DA',
        '19' => 'IN',
        '20' => 'IRK',
        '21' => 'IVA',
        '22' => 'KB',
        '23' => 'KGD',
        '24' => 'KL',
        '25' => 'KLU',
        '27' => 'KC',
        '28' => 'KR',
        '29' => 'KEM',
        '30' => 'KHA',
        '31' => 'KK',
        '32' => 'KHM',
        '33' => 'KIR',
        '34' => 'KO',
        '37' => 'KOS',
        '38' => 'KDA',
        '40' => 'KGN',
        '41' => 'KRS',
        '42' => 'LEN',
        '43' => 'LIP',
        '44' => 'MAG',
        '45' => 'ME',
        '46' => 'MO',
        '47' => 'MOS',
        '48' => 'MOW',
        '49' => 'MUR',
        '50' => 'NEN',
        '51' => 'NIZ',
        '52' => 'NGR',
        '53' => 'NVS',
        '54' => 'OMS',
        '55' => 'ORE',
        '56' => 'ORL',
        '57' => 'PNZ',
        '59' => 'PRI',
        '60' => 'PSK',
        '61' => 'ROS',
        '62' => 'RYA',
        '63' => 'SA',
        '64' => 'SAK',
        '65' => 'SAM',
        '66' => 'SPE',
        '67' => 'SAR',
        '68' => 'SE',
        '69' => 'SMO',
        '70' => 'STA',
        '71' => 'SVE',
        '72' => 'TAM',
        '73' => 'TA',
        '74' => 'KYA', // Taymyr  [part of Krasnoyarsk Krai]
        '75' => 'TOM',
        '76' => 'TUL',
        '77' => 'TVE',
        '78' => 'TYU',
        '79' => 'TY',
        '80' => 'UD',
        '81' => 'ULY',
        '83' => 'VLA',
        '84' => 'VGG',
        '85' => 'VLG',
        '86' => 'VOR',
        '87' => 'YAN',
        '88' => 'YAR',
        '89' => 'YEV',
        '90' => 'PER',
        '91' => 'KYA',
        '92' => 'KAM',

        // valid codes  [not used by maxmind]
        '82' => 'IRK', // Ust'-Ordynskiy Buryatskiy [part of  Irkutsk Oblast]

        // invalid codes  [used by maymind]
        '18' => 'KYA', // Evenk  [part of Krasnoyarsk Krai]
        '26' => 'KAM', // Kamchatka
        '36' => 'KAM', // Koryak  [part of Kamchatka Krai]
        '39' => 'KYA', // Krasnoyarsk
        '58' => 'PER', // Perm
        '93' => 'ZAB', // Zabaykal'skiy Kray
    ],
    'RW' => [
        '11' => '02', // Est
        '12' => '01', // Kigali
        '13' => '03', // Nord
        '14' => '04', // Ouest
        '15' => '05', // Sud

        // invalid codes  [used by maxmind]
        '01' => '05', // Butare  [city in Southern]
        '06' => '05', // Gitarama  [city in Southern]
        '07' => '02', // Kibungo  [city in Eastern]
        '09' => '01', // Kigali
    ],
    'SA' => [
        '02' => '11',
        '05' => '03',
        '06' => '04',
        '08' => '05',
        '10' => '01',
        '11' => '14',
        '13' => '06',
        '14' => '02',
        '15' => '08',
        '16' => '10',
        '17' => '09',
        '19' => '07',
        '20' => '12',
    ],
    'SB' => [
        '03' => 'ML',
        '06' => 'GU',
        '07' => 'IS',
        '08' => 'MK',
        '09' => 'TE',
        '10' => 'CE',
        '11' => 'WE',
        '12' => 'CH',
        '13' => 'RB',
    ],
    'SC' => [
        '01' => '01', // Anse aux Pins
        '02' => '02', // Anse Boileau
        '03' => '03', // Anse Etoile
        '05' => '05', // Anse Royale
        '06' => '06', // Baie Lazare
        '07' => '07', // Baie Sainte Anne
        '08' => '08', // Beau Vallon
        '09' => '09', // Bel Air
        '10' => '10', // Bel Ombre
        '11' => '11', // Cascade
        '12' => '12', // Glacis
        '14' => '14', // Grand' Anse
        '17' => '17', // Mont Buxton
        '18' => '18', // Mont Fleuri
        '19' => '19', // Plaisance
        '20' => '20', // Pointe La Rue
        '22' => '22', // Saint Louis
        '23' => '23', // Takamaka

        // valid codes  [not used by maxmind
        '24' => '13',
        '25' => '15',
        '26' => '16',
        '27' => '21',
        '28' => '04',
        '29' => '24',
        '30' => '25',

        // invalid codes  [used by maxmind]
        '04' => '04', // Anse Louis
        '13' => '14', // Grand' Anse
        '15' => '15', // La Digue
        '16' => '16', // La Riviere Anglaise
        '21' => '21', // Port Glaud
    ],
    'SD' => [
        '29' => 'KH', // Al Khartum
        '35' => '', // Upper Nile  [reorganized, not mappable]
        '40' => '', // Al Wahadah State  [reorganized, not mappable]
        '44' => '', // Central Equatoria State  [reorganized, not mappable]
        '49' => 'DS', // Southern Darfur
        '50' => 'KS', // Southern Kordofan
        '52' => 'KA', // Kassala
        '53' => 'NR', // River Nile
        '55' => 'DN', // Northern Darfur

        // valid codes  [not used by maxmind]
        '36' => 'RS',
        '37' => '', //  [reorganized, not mappable]
        '38' => 'GZ',
        '39' => 'GD',
        '41' => 'NW',
        '42' => 'NB',
        '43' => 'NO',
        '45' => '', //  [reorganized, not mappable]
        '46' => '', //  [reorganized, not mappable]
        '47' => 'DW',
        '48' => 'GK',
        '51' => '', //  [reorganized, not mappable]
        '54' => '', //  [reorganized, not mappable]
        '56' => 'KN',
        '57' => '', //  [reorganized, not mappable]
        '58' => 'SI',
        '59' => '', //  [reorganized, not mappable]

        // invalid codes  [used by maxmind]
        '27' => '', // Al Wusta
        '28' => '', // Al Istiwa'iyah
        '30' => 'NO', // Ash Shamaliyah
        '31' => '', // Ash Sharqiyah
        '32' => '', // Bahr al Ghazal
        '33' => 'DW', // Darfur
        '34' => 'GK', // Kurdufan
    ],
    'SE' => [
        '02' => 'K',
        '03' => 'X',
        '05' => 'I',
        '06' => 'N',
        '07' => 'Z',
        '08' => 'F',
        '09' => 'H',
        '10' => 'W',
        '12' => 'G',
        '14' => 'BD',
        '15' => 'T',
        '16' => 'E',
        '18' => 'D',
        '21' => 'C',
        '22' => 'S',
        '23' => 'AC',
        '24' => 'Y',
        '25' => 'U',
        '26' => 'AB',
        '27' => 'M',
        '28' => 'O',
    ],
    'SH' => [
        '01' => 'AC',
        '02' => 'HL',
        '03' => 'TA',
    ],
    'SI' => [
        '01' => '001', // Ajdovscina Commune
        '02' => '002', // Beltinci Commune
        '03' => '003', // Bled Commune
        '04' => '004', // Bohinj Commune
        '05' => '005', // Borovnica Commune
        '06' => '006', // Bovec Commune
        '07' => '007', // Brda Commune
        '08' => '009', // Brezice Commune
        '09' => '008', // Brezovica Commune
        '11' => '011', // Celje Commune
        '12' => '012', // Cerklje na Gorenjskem Commune
        '13' => '013', // Cerknica Commune
        '14' => '014', // Cerkno Commune
        '15' => '015', // Crensovci Commune
        '16' => '016', // Crna na Koroskem Commune
        '17' => '017', // Crnomelj Commune
        '19' => '019', // Divaca Commune
        '20' => '020', // Dobrepolje Commune
        '22' => '022', // Dol pri Ljubljani Commune
        '24' => '024', // Dornava Commune
        '25' => '025', // Dravograd Commune
        '26' => '026', // Duplek Commune
        '27' => '027', // Gorenja vas-Poljane Commune
        '28' => '028', // Gorisnica Commune
        '29' => '029', // Gornja Radgona Commune
        '30' => '030', // Gornji Grad Commune
        '31' => '031', // Gornji Petrovci Commune
        '32' => '032', // Grosuplje Commune
        '34' => '034', // Hrastnik Commune
        '35' => '035', // Hrpelje-Kozina Commune
        '36' => '036', // Idrija Commune
        '37' => '037', // Ig Commune
        '38' => '038', // Ilirska Bistrica Commune
        '39' => '039', // Ivancna Gorica Commune
        '40' => '040', // Izola-Isola Commune
        '42' => '042', // Jursinci Commune
        '44' => '044', // Kanal Commune
        '45' => '045', // Kidricevo Commune
        '46' => '046', // Kobarid Commune
        '47' => '047', // Kobilje Commune
        '49' => '049', // Komen Commune
        '50' => '050', // Koper-Capodistria Urban Commune
        '51' => '051', // Kozje Commune
        '52' => '052', // Kranj Commune
        '53' => '053', // Kranjska Gora Commune
        '54' => '054', // Krsko Commune
        '55' => '055', // Kungota Commune
        '57' => '057', // Lasko Commune
        '61' => '061', // Ljubljana Urban Commune
        '62' => '062', // Ljubno Commune
        '64' => '064', // Logatec Commune
        '66' => '066', // Loski Potok Commune
        '68' => '068', // Lukovica Commune
        '71' => '071', // Medvode Commune
        '72' => '072', // Menges Commune
        '73' => '073', // Metlika Commune
        '74' => '074', // Mezica Commune
        '76' => '076', // Mislinja Commune
        '77' => '077', // Moravce Commune
        '78' => '078', // Moravske Toplice Commune
        '79' => '079', // Mozirje Commune
        '80' => '080', // Murska Sobota Urban Commune
        '81' => '081', // Muta Commune
        '82' => '082', // Naklo Commune
        '83' => '083', // Nazarje Commune
        '84' => '084', // Nova Gorica Urban Commune
        '86' => '086', // Odranci Commune
        '87' => '087', // Ormoz Commune
        '88' => '088', // Osilnica Commune
        '89' => '089', // Pesnica Commune
        '91' => '091', // Pivka Commune
        '92' => '092', // Podcetrtek Commune
        '94' => '094', // Postojna Commune
        '97' => '097', // Puconci Commune
        '98' => '098', // Race-Fram Commune
        '99' => '099', // Radece Commune
        'A1' => '100', // Radenci Commune
        'A2' => '101', // Radlje ob Dravi Commune
        'A3' => '102', // Radovljica Commune
        'A6' => '105', // Rogasovci Commune
        'A7' => '106', // Rogaska Slatina Commune
        'A8' => '107', // Rogatec Commune
        'B1' => '109', // Semic Commune
        'B2' => '117', // Sencur Commune
        'B3' => '118', // Sentilj Commune
        'B4' => '119', // Sentjernej Commune
        'B6' => '110', // Sevnica Commune
        'B7' => '111', // Sezana Commune
        'B8' => '121', // Skocjan Commune
        'B9' => '122', // Skofja Loka Commune
        'C1' => '123', // Skofljica Commune
        'C2' => '112', // Slovenj Gradec Urban Commune
        'C4' => '114', // Slovenske Konjice Commune
        'C5' => '124', // Smarje pri Jelsah Commune
        'C6' => '125', // Smartno ob Paki Commune
        'C7' => '126', // Sostanj Commune
        'C8' => '115', // Starse Commune
        'C9' => '127', // Store Commune
        'D1' => '210', // Sveti Jurij Commune
        'D2' => '128', // Tolmin Commune
        'D3' => '129', // Trbovlje Commune
        'D4' => '130', // Trebnje Commune
        'D5' => '131', // Trzic Commune
        'D6' => '132', // Turnisce Commune
        'D7' => '133', // Velenje Urban Commune
        'D8' => '134', // Velike Lasce Commune
        'E1' => '136', // Vipava Commune
        'E2' => '137', // Vitanje Commune
        'E3' => '138', // Vodice Commune
        'E5' => '140', // Vrhnika Commune
        'E6' => '141', // Vuzenica Commune
        'E7' => '142', // Zagorje ob Savi Commune
        'E9' => '143', // Zavrc Commune
        'F1' => '146', // Zelezniki Commune
        'F2' => '147', // Ziri Commune
        'F3' => '144', // Zrece Commune
        'F4' => '148', // Benedikt Commune
        'F5' => '149', // Bistrica ob Sotli Commune
        'F6' => '150', // Bloke Commune
        'F7' => '151', // Braslovce Commune
        'F8' => '152', // Cankova Commune
        'F9' => '153', // Cerkvenjak Commune
        'G1' => '018', // Destrnik Commune
        'G2' => '154', // Dobje Commune
        'G3' => '155', // Dobrna Commune
        'G4' => '021', // Dobrova-Horjul-Polhov Gradec Commune
        'G5' => '156', // Dobrovnik-Dobronak Commune
        'G6' => '157', // Dolenjske Toplice Commune
        'G7' => '023', // Domzale Commune
        'G8' => '158', // Grad Commune
        'G9' => '159', // Hajdina Commune
        'H1' => '160', // Hoce-Slivnica Commune
        'H2' => '161', // Hodos-Hodos Commune
        'H3' => '162', // Horjul Commune
        'H4' => '041', // Jesenice Commune
        'H5' => '163', // Jezersko Commune
        'H6' => '043', // Kamnik Commune
        'H7' => '048', // Kocevje Commune
        'H8' => '164', // Komenda Commune
        'H9' => '165', // Kostel Commune
        'I1' => '166', // Krizevci Commune
        'I2' => '056', // Kuzma Commune
        'I3' => '058', // Lenart Commune
        'I4' => '059', // Lendava-Lendva Commune
        'I5' => '060', // Litija Commune
        'I6' => '063', // Ljutomer Commune
        'I7' => '065', // Loska Dolina Commune
        'I8' => '167', // Lovrenc na Pohorju Commune
        'I9' => '067', // Luce Commune
        'J1' => '069', // Majsperk Commune
        'J2' => '070', // Maribor Commune
        'J3' => '168', // Markovci Commune
        'J4' => '169', // Miklavz na Dravskem polju Commune
        'J5' => '075', // Miren-Kostanjevica Commune
        'J6' => '170', // Mirna Pec Commune
        'J7' => '085', // Novo mesto Urban Commune
        'J8' => '171', // Oplotnica Commune
        'J9' => '090', // Piran-Pirano Commune
        'K1' => '172', // Podlehnik Commune
        'K2' => '093', // Podvelka Commune
        'K3' => '173', // Polzela Commune
        'K4' => '174', // Prebold Commune
        'K5' => '095', // Preddvor Commune
        'K6' => '175', // Prevalje Commune
        'K7' => '096', // Ptuj Urban Commune
        'K8' => '103', // Ravne na Koroskem Commune
        'K9' => '176', // Razkrizje Commune
        'L1' => '104', // Ribnica Commune
        'L2' => '177', // Ribnica na Pohorju Commune
        'L3' => '108', // Ruse Commune
        'L4' => '033', // Salovci Commune
        'L5' => '178', // Selnica ob Dravi Commune
        'L6' => '183', // Sempeter-Vrtojba Commune
        'L7' => '120', // Sentjur pri Celju Commune
        'L8' => '113', // Slovenska Bistrica Commune
        'L9' => '194', // Smartno pri Litiji Commune
        'M1' => '179', // Sodrazica Commune
        'M2' => '180', // Solcava Commune
        'M3' => '181', // Sveta Ana Commune
        'M4' => '182', // Sveti Andraz v Slovenskih goricah Commune
        'M5' => '184', // Tabor Commune
        'M6' => '010', // Tisina Commune
        'M7' => '185', // Trnovska vas Commune
        'M8' => '186', // Trzin Commune
        'M9' => '187', // Velika Polana Commune
        'N1' => '188', // Verzej Commune
        'N2' => '135', // Videm Commune
        'N3' => '139', // Vojnik Commune
        'N4' => '189', // Vransko Commune
        'N5' => '190', // Zalec Commune
        'N6' => '191', // Zetale Commune
        'N7' => '192', // Zirovnica Commune
        'N8' => '193', // Zuzemberk Commune

        // invalid codes  [used by maxmind]
        'N9' => '195', // Apace Commune
        'O1' => '196', // Cirkulane Commune
        'O2' => '207', // Gorje
        'O3' => '197', // Kostanjevica na Krki
        'O4' => '208', // Log-Dragomer
        'O5' => '198', // Makole
        'O6' => '212', // Mirna
        'O7' => '199', // Mokronog-Trebelno
        'O8' => '200', // Poljcane
        'O9' => '209', // Recica ob Savinji
        'P1' => '201', // Rence-Vogrsko
        'P2' => '211', // Sentrupert
        'P3' => '206', // Smarjesk Toplice
        'P4' => '202', // Sredisce ob Dravi
        'P5' => '203', // Straza
        'P7' => '210', // Sveti Jurij v Slovenskih Goricah
    ],
    'SK' => [
        '01' => 'BC',
        '02' => 'BL',
        '03' => 'KI',
        '04' => 'NI',
        '05' => 'PV',
        '06' => 'TC',
        '07' => 'TA',
        '08' => 'ZI',
    ],
    'SL' => [
        '01' => 'E',
        '02' => 'N',
        '03' => 'S',
        '04' => 'W',
    ],
    'SM' => [
        '01' => '01',
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
        '09' => '09',
    ],
    'SN' => [
        '01' => 'DK',
        '03' => 'DB',
        '05' => 'TC',
        '07' => 'TH',
        '09' => 'FK',
        '10' => 'KL',
        '11' => 'KD',
        '12' => 'ZG',
        '13' => 'LG',
        '14' => 'SL',
        '15' => 'MT',
    ],
    'SO' => [
        '01' => 'BK',
        '02' => 'BN',
        '03' => 'BR',
        '04' => 'BY',
        '05' => 'GA',
        '06' => 'GE',
        '07' => 'HI',
        '08' => 'JD',
        '09' => 'JH',
        '10' => 'MU',
        '12' => 'SA',
        '13' => 'SD',
        '14' => 'SH',
        '18' => 'NU',
        '19' => 'TO',
        '20' => 'WO',
        '21' => 'AW',
        '22' => 'SO',

        // invalid codes  [used by maxmind]
        '11' => 'NU',
        '16' => 'WO',
    ],
    'SR' => [
        '10' => 'BR',
        '11' => 'CM',
        '12' => 'CR',
        '13' => 'MA',
        '14' => 'NI',
        '15' => 'PR',
        '16' => 'PM',
        '17' => 'SA',
        '18' => 'SI',
        '19' => 'WA',
    ],
    'SS' => [
        // invalid codes  [used by maxmind]
        '01' => 'EC', // Central Equatoria
        '02' => 'EE', // Eastern Equatoria
        '03' => 'JG', // Jonglei
        '04' => 'LK', // Lakes
        '05' => 'BN', // Northern Bahr el Ghazal
        '06' => 'UY', // Unity
        '07' => 'NU', // Upper Nile
        '08' => 'WR', // Warrap
        '09' => 'BW', // Western Bahr el Ghazal
        '10' => 'EW', // Western Equatoria
    ],
    'ST' => [
        '01' => 'P', // Principe
        '02' => 'S', // Sao Tome
    ],
    'SV' => [
        '01' => 'AH',
        '02' => 'CA',
        '03' => 'CH',
        '04' => 'CU',
        '05' => 'LI',
        '06' => 'PA',
        '07' => 'UN',
        '08' => 'MO',
        '09' => 'SM',
        '10' => 'SS',
        '11' => 'SA',
        '12' => 'SV',
        '13' => 'SO',
        '14' => 'US',
    ],
    'SY' => [
        '01' => 'HA', // Al Hasakah
        '02' => 'LA', // Al Ladhiqiyah
        '03' => 'QU', // Al Qunaytirah
        '04' => 'RA', // Ar Raqqah
        '05' => 'SU', // As Suwayda'
        '06' => 'DR', // Dar
        '07' => 'DY', // Dayr az Zawr
        '08' => 'RD', // Rif Dimashq
        '09' => 'HL', // Halab
        '10' => 'HM', // Hamah
        '11' => 'HI', // Hims
        '12' => 'ID', // Idlib
        '13' => 'DI', // Dimashq
        '14' => 'TA', // Tartus
    ],
    'SZ' => [
        '01' => 'HH',
        '02' => 'LU',
        '03' => 'MA',
        '04' => 'SH',

        // screwed up code, that seems to be from Seychelles
        '05' => '', // Praslin
    ],
    'TD' => [
        '01' => 'BA',
        '02' => 'WF',
        '03' => '', // Borkou-Ennedi-Tibesti  [split up]
        '05' => 'GR',
        '06' => 'KA',
        '07' => 'LC',
        '08' => 'LO',
        '09' => 'LR',
        '12' => 'OD',
        '13' => 'SA',
        '14' => 'TA',

        // invalid codes  [used by maxmind]
        '04' => '', // Chari-Baguirmi  [split up]
        '10' => '', // Mayo-Kebbi  [split into east and west]
        '11' => 'MC', // Moyen-Chari

        // valid codes  [not used by maxmind]
        '15' => '', // Chari-Baguirmi  [split up]
        '16' => 'ME',
        '17' => 'MC',
        '18' => 'HL',
        '19' => 'MA',
        '20' => 'MO',
        '21' => 'ND',
    ],
    'TG' => [
        '22' => 'C',
        '23' => 'K',
        '24' => 'M',
        '25' => 'P',
        '26' => 'S',
    ],
    'TH' => [
        '01' => '58', // Mae Hong Son
        '02' => '50', // Chiang Mai
        '03' => '57', // Chiang Rai
        '04' => '55', // Nan
        '05' => '51', // Lamphun
        '06' => '52', // Lampang
        '07' => '54', // Phrae
        '08' => '63', // Tak
        '09' => '64', // Sukhothai
        '10' => '53', // Uttaradit
        '11' => '62', // Kamphaeng Phet
        '12' => '65', // Phitsanulok
        '13' => '66', // Phichit
        '14' => '67', // Phetchabun
        '15' => '61', // Uthai Thani
        '16' => '60', // Nakhon Sawan
        '17' => '43', // Nong Khai
        '18' => '42', // Loei
        '20' => '47', // Sakon Nakhon
        '22' => '40', // Khon Kaen
        '23' => '46', // Kalasin
        '24' => '44', // Maha Sarakham
        '25' => '45', // Roi Et
        '26' => '36', // Chaiyaphum
        '27' => '30', // Nakhon Ratchasima
        '28' => '31', // Buriram
        '29' => '32', // Surin
        '30' => '33', // Sisaket
        '31' => '96', // Narathiwat
        '32' => '18', // Chai Nat
        '33' => '17', // Sing Buri
        '34' => '16', // Lop Buri
        '35' => '15', // Ang Thong
        '36' => '14', // Phra Nakhon Si Ayutthaya
        '37' => '19', // Saraburi
        '38' => '12', // Nonthaburi
        '39' => '13', // Pathum Thani
        '40' => '10', // Krung Thep
        '41' => '56', // Phayao
        '42' => '11', // Samut Prakan
        '43' => '26', // Nakhon Nayok
        '44' => '24', // Chachoengsao
        '46' => '20', // Chon Buri
        '47' => '21', // Rayong
        '48' => '22', // Chanthaburi
        '49' => '23', // Trat
        '50' => '71', // Kanchanaburi
        '51' => '72', // Suphan Buri
        '52' => '70', // Ratchaburi
        '53' => '73', // Nakhon Pathom
        '54' => '75', // Samut Songkhram
        '55' => '74', // Samut Sakhon
        '56' => '76', // Phetchaburi
        '57' => '77', // Prachuap Khiri Khan
        '58' => '86', // Chumphon
        '59' => '85', // Ranong
        '60' => '84', // Surat Thani
        '61' => '82', // Phangnga
        '62' => '83', // Phuket
        '63' => '81', // Krabi
        '64' => '80', // Nakhon Si Thammarat
        '65' => '92', // Trang
        '66' => '93', // Phatthalung
        '67' => '91', // Satun
        '68' => '90', // Songkhla
        '69' => '94', // Pattani
        '70' => '95', // Yala
        '72' => '35', // Yasothon
        '73' => '48', // Nakhon Phanom
        '74' => '25', // Prachin Buri
        '75' => '34', // Ubon Ratchathani
        '76' => '41', // Udon Thani
        '77' => '37', // Amnat Charoen
        '78' => '49', // Mukdahan
        '79' => '39', // Nong Bua Lamphu
        '80' => '27', // Sa Kaeo

        // invalid codes  [used by maxmind]
        '21' => '48', // Nakhon Phanom
        '45' => '25', // Prachin Buri
        '71' => '34', // Ubon Ratchathani
        '81' => '38', // Bueng Kan
    ],
    'TJ' => [
        '01' => 'GB',
        '02' => 'KT',
        '03' => 'SU',

        // invalid codes  [used by maxmind]
        '04' => 'DU',
        '05' => 'RA',
    ],
    'TL' => [
        // invalid codes  [used by maxmind]
        '06' => 'DI', // Dili
    ],
    'TM' => [
        '01' => 'A',
        '02' => 'B',
        '03' => 'D',
        '04' => 'L',
        '05' => 'M',
    ],
    'TN' => [
        '02' => '42',
        '03' => '41',
        '06' => '32',
        '10' => '71',
        '14' => '33',
        '15' => '53',
        '16' => '52',
        '17' => '31',
        '18' => '23',
        '19' => '21',
        '22' => '34',
        '23' => '51',
        '27' => '13',
        '28' => '82',
        '29' => '81',
        '31' => '73',
        '32' => '61',
        '33' => '43',
        '34' => '83',
        '35' => '72',
        '36' => '11',
        '37' => '22',
        '38' => '12',
        '39' => '14',
    ],
    'TO' => [
        '01' => '02',
        '02' => '04',
        '03' => '05',
    ],
    'TR' => [
        '02' => '02', // Adiyaman
        '03' => '03', // Afyonkarahisar
        '04' => '04', // Agri
        '05' => '05', // Amasya
        '07' => '07', // Antalya
        '08' => '08', // Artvin
        '09' => '09', // Aydin
        '10' => '10', // Balikesir
        '11' => '11', // Bilecik
        '12' => '12', // Bingol
        '13' => '13', // Bitlis
        '14' => '14', // Bolu
        '15' => '15', // Burdur
        '16' => '16', // Bursa
        '17' => '17', // Canakkale
        '19' => '19', // Corum
        '20' => '20', // Denizli
        '21' => '21', // Diyarbakir
        '22' => '22', // Edirne
        '23' => '23', // Elazig
        '24' => '24', // Erzincan
        '25' => '25', // Erzurum
        '26' => '26', // Eskisehir
        '28' => '28', // Giresun
        '31' => '31', // Hatay
        '32' => '33', // Mersin
        '33' => '32', // Isparta
        '34' => '34', // Istanbul
        '35' => '35', // Izmir
        '37' => '37', // Kastamonu
        '38' => '38', // Kayseri
        '39' => '39', // Kirklareli
        '40' => '40', // Kirsehir
        '41' => '41', // Kocaeli
        '43' => '43', // Kutahya
        '44' => '44', // Malatya
        '45' => '45', // Manisa
        '46' => '46', // Kahramanmaras
        '48' => '48', // Mugla
        '49' => '49', // Mus
        '50' => '50', // Nevsehir
        '52' => '52', // Ordu
        '53' => '53', // Rize
        '54' => '54', // Sakarya
        '55' => '55', // Samsun
        '57' => '57', // Sinop
        '58' => '58', // Sivas
        '59' => '59', // Tekirdag
        '60' => '60', // Tokat
        '61' => '61', // Trabzon
        '62' => '62', // Tunceli
        '63' => '63', // Sanliurfa
        '64' => '64', // Usak
        '65' => '65', // Van
        '66' => '66', // Yozgat
        '68' => '06', // Ankara
        '69' => '29', // Gumushane
        '70' => '30', // Hakkari
        '71' => '42', // Konya
        '72' => '47', // Mardin
        '73' => '51', // Nigde
        '74' => '56', // Siirt
        '75' => '68', // Aksaray
        '76' => '72', // Batman
        '77' => '69', // Bayburt
        '78' => '70', // Karaman
        '79' => '71', // Kirikkale
        '80' => '73', // Sirnak
        '81' => '01', // Adana
        '82' => '18', // Cankiri
        '83' => '27', // Gaziantep
        '84' => '36', // Kars
        '85' => '67', // Zonguldak
        '86' => '75', // Ardahan
        '87' => '74', // Bartin
        '88' => '76', // Igdir
        '89' => '78', // Karabuk
        '90' => '79', // Kilis
        '91' => '80', // Osmaniye
        '92' => '77', // Yalova
        '93' => '81', // Duzce
    ],
    'TT' => [
        '01' => 'ARI', // Arima
        '02' => '', // Caroni  [split up]
        '03' => 'MRC', // Mayaro
        '04' => '', // Nariva  [split up]
        '05' => 'POS', // Port-of-Spain
        '06' => 'SGE', // Saint Andrew  [now in Sangre Grand]
        '07' => 'SGE', // Saint David  [now in Sangre Grand]
        '08' => '', // Saint George  [split up]
        '09' => '', // Saint Patrick  [split up]
        '10' => 'SFO', // San Fernando
        '11' => 'TOB', // Tobago
        '12' => '', // Victoria  [split up]
    ],
    'TW' => [
        '01' => '',
        '02' => 'KHH',
        '03' => 'TPE',
        '04' => '',
    ],
    'TZ' => [
        '02' => '19',
        '03' => '03',
        '04' => '04',
        '05' => '08',
        '06' => '09',
        '07' => '12',
        '08' => '13',
        '09' => '14',
        '10' => '16',
        '11' => '17',
        '12' => '18',
        '13' => '06',
        '14' => '21',
        '15' => '22',
        '16' => '23',
        '17' => '24',
        '18' => '25',
        '19' => '05',
        '20' => '10',
        '21' => '11',
        '22' => '07',
        '23' => '02',
        '24' => '20',
        '25' => '15',
        '26' => '01',
        '27' => '26',
    ],
    'UA' => [
        '01' => '71',
        '02' => '74',
        '03' => '77',
        '04' => '12',
        '05' => '14',
        '06' => '26',
        '07' => '63',
        '08' => '65',
        '09' => '68',
        '10' => '35',
        '11' => '43',
        '12' => '30',
        '13' => '32',
        '14' => '09',
        '15' => '46',
        '16' => '48',
        '17' => '51',
        '18' => '53',
        '19' => '56',
        '20' => '40',
        '21' => '59',
        '22' => '61',
        '23' => '05',
        '24' => '07',
        '25' => '21',
        '26' => '23',
        '27' => '18',
    ],
    'UG' => [
        '26' => '302', // Apac
        '28' => '401', // Bundibugyo
        '29' => '102', // Bushenyi
        '30' => '304', // Gulu
        '31' => '403', // Hoima
        '33' => '204', // Jinja
        '36' => '101', // Kalangala
        '37' => '102', // Kampala
        '38' => '205', // Kamuli
        '39' => '206', // Kapchorwa
        '40' => '406', // Kasese
        '41' => '407', // Kibale
        '42' => '103', // Kiboga
        '43' => '408', // Kisoro
        '45' => '306', // Kotido
        '46' => '208', // Kumi
        '47' => '307', // Lira
        '50' => '409', // Masindi
        '52' => '410', // Mbarara
        '56' => '107', // Mubende
        '58' => '310', // Nebbi
        '59' => '411', // Ntungamo
        '60' => '210', // Pallisa
        '61' => '110', // Rakai
        '65' => '301', // Adjumani
        '66' => '201', // Bugiri
        '67' => '202', // Busia
        '69' => '207', // Katakwi
        '70' => '104', // Luwero
        '71' => '105', // Masaka
        '72' => '309', // Moyo
        '73' => '109', // Nakasongola
        '74' => '111', // Sembabule
        '76' => '212', // Tororo
        '77' => '303', // Arua
        '78' => '203', // Iganga
        '79' => '405', // Kabarole
        '80' => '213', // Kaberamaido
        '81' => '413', // Kamwenge
        '82' => '414', // Kanungu
        '83' => '112', // Kayunga
        '84' => '305', // Kitgum
        '85' => '415', // Kyenjojo
        '86' => '214', // Mayuge
        '87' => '209', // Mbale
        '88' => '308', // Moroto
        '89' => '106', // Mpigi
        '90' => '108', // Mukono
        '91' => '311', // Nakapiripirit
        '92' => '312', // Pader
        '93' => '412', // Rukungiri
        '94' => '215', // Sironko
        '95' => '211', // Soroti
        '96' => '113', // Wakiso
        '97' => '313', // Yumbe

        // valid codes  [not used by maxmind]
        '34' => '404', // Kabale
    ],
    'UY' => [
        '01' => 'AR',
        '02' => 'CA',
        '03' => 'CL',
        '04' => 'CO',
        '05' => 'DU',
        '06' => 'FS',
        '07' => 'FD',
        '08' => 'LA',
        '09' => 'MA',
        '10' => 'MO',
        '11' => 'PA',
        '12' => 'RN',
        '13' => 'RV',
        '14' => 'RO',
        '15' => 'SA',
        '16' => 'SJ',
        '17' => 'SO',
        '18' => 'TA',
        '19' => 'TT',
    ],
    'UZ' => [
        '01' => 'AN',
        '02' => 'BU',
        '03' => 'FA',
        '05' => 'XO',
        '06' => 'NG',
        '07' => 'NW',
        '08' => 'QA',
        '09' => 'QR',
        '10' => 'SA',
        '12' => 'SU',
        '13' => 'TK',
        '14' => 'TO',
        '15' => 'JI',

        // invalid codes  [used by maxmind]
        '04' => 'JI',
        '11' => 'SI',
    ],
    'VC' => [
        '01' => '01',
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
    ],
    'VE' => [
        '01' => 'Z',
        '02' => 'B',
        '03' => 'C',
        '04' => 'D',
        '05' => 'E',
        '06' => 'F',
        '07' => 'G',
        '08' => 'H',
        '09' => 'Y',
        '11' => 'I',
        '12' => 'J',
        '13' => 'K',
        '14' => 'L',
        '15' => 'M',
        '16' => 'N',
        '17' => 'O',
        '18' => 'P',
        '19' => 'R',
        '20' => 'S',
        '21' => 'T',
        '22' => 'U',
        '23' => 'V',
        '24' => 'W',
        '25' => 'A',
        '26' => 'X',
    ],
    'VN' => [
        '01' => '44', // An Giang
        '03' => '50', // Ben Tre
        '05' => '04', // Cao Bang
        '09' => '45', // Dong Thap
        '13' => 'HP', // Hai Phong
        '20' => 'SG', // Ho Chi Minh
        '21' => '47', // Kien Giang
        '23' => '35', // Lam Dong
        '24' => '41', // Long An
        '30' => '13', // Quang Ninh
        '32' => '05', // Son La
        '33' => '37', // Tay Ninh
        '34' => '21', // Thanh Hoa
        '35' => '20', // Thai Binh
        '37' => '46', // Tien Giang
        '39' => '09', // Lang Son
        '43' => '39', // Dong Nai
        '44' => 'HN', // Ha Noi
        '45' => '45', // Ba Ria-Vung Tau
        '46' => '31', // Binh Dinh
        '47' => '40', // Binh Thuan
        '49' => '30', // Gia Lai
        '50' => '03', // Ha Giang
        '52' => '23', // Ha Tinh
        '53' => '14', // Hoa Binh
        '54' => '34', // Khanh Hoa
        '55' => '28', // Kon Tum
        '58' => '22', // Nghe An
        '59' => '18', // Ninh Binh
        '60' => '36', // Ninh Thuan
        '61' => '32', // Phu Yen
        '62' => '24', // Quang Binh
        '63' => '29', // Quang Ngai
        '64' => '25', // Quang Tri
        '65' => '52', // Soc Trang
        '66' => '26', // Thua Thien-Hue
        '67' => '51', // Tra Vinh
        '68' => '07', // Tuyen Quang
        '69' => '49', // Vinh Long
        '70' => '06', // Yen Bai
        '71' => '54', // Bac Giang
        '72' => '53', // Bac Kan
        '73' => '55', // Bac Lieu
        '74' => '56', // Bac Ninh
        '75' => '57', // Binh Duong
        '76' => '58', // Binh Phuoc
        '77' => '59', // Ca Mau
        '78' => 'DN', // Da Nang
        '79' => '61', // Hai Duong
        '80' => '63', // Ha Nam
        '81' => '66', // Hung Yen
        '82' => '67', // Nam Dinh
        '83' => '68', // Phu Tho
        '84' => '27', // Quang Nam
        '85' => '69', // Thai Nguyen
        '86' => '70', // Vinh Phuc
        '87' => 'CT', // Can Tho
        '88' => '33', // Dac Lak
        '89' => '01', // Lai Chau
        '90' => '02', // Lao Cai
        '91' => '72', // Dak Nong
        '92' => '71', // Dien Bien
        '93' => '73', // Hau Giang

        // valid codes  [not used by maxmind]
        '51' => 'HN', // Hà Tây  [merged in Ha Noi]
    ],
    'VU' => [
        '07' => 'TOB',
        '13' => 'SAM',
        '15' => 'TAE',
        '16' => 'MAP',
        '17' => 'PAM',
        '18' => 'SEE',

        // invalid codes  [used by maxmind]
        '05' => 'MAP', // Ambrym  [island in Malampa]
        '06' => 'PAM', // Aoba  [island in Penama]
        '08' => 'SEE', // Efate  [island in Shefa]
        '09' => 'SEE', // Epi  [island in Shefa]
        '10' => 'MAP', // Malakula  [island in Malampa]
        '11' => 'MAP', // Paama  [island in Malampa]
        '12' => 'PAM', // Pentecote  [island in Penama]
        '14' => 'SEE', // Shepherd  [island in Shefa]
    ],
    'WS' => [
        '02' => 'AL',
        '03' => 'AT',
        '04' => 'FA',
        '05' => 'GE',
        '06' => 'VF',
        '07' => 'GI',
        '08' => 'PA',
        '09' => 'SA',
        '10' => 'TU',
        '11' => 'VS',

        // valid codes  [not used by maxmind]
        '01' => 'AA',
    ],
    'YE' => [
        '01' => 'AB', // Abyan
        '02' => 'AD', // Adan
        '03' => 'MR', // Al Mahrah
        '04' => 'HD', // Hadramawt
        '05' => 'SH', // Shabwah
        '08' => 'HU', // Al Hudaydah
        '10' => 'MW', // Al Mahwit
        '11' => 'DH', // Dhamar
        '14' => 'MA', // Ma'rib
        '15' => 'SD', // Sa'dah
        '16' => 'SN', // San'a'
        '18' => 'DA', // Ad Dali
        '19' => 'AM', // Amran
        '20' => 'BA', // Al Bayda'
        '21' => 'JA', // Al Jawf
        '22' => 'HJ', // Hajjah
        '23' => 'IB', // Ibb
        '24' => 'LA', // Lahij
        '25' => 'TA', // Taizz

        // invalid codes  [used by maxmind]
        '06' => 'LA', // Lahij
        '07' => 'BA', // Al Bayda'
        '09' => 'JA', // Al Jawf
        '12' => 'HJ', // Hajjah
        '13' => 'IB', // Ibb
        '17' => 'TA', // Taizz
    ],
    'ZA' => [
        '02' => 'NL',
        '03' => 'FS',
        '05' => 'EC',
        '06' => 'GT',
        '07' => 'MP',
        '08' => 'NC',
        '09' => 'LP',
        '10' => 'NW',
        '11' => 'WC',

        // invalid codes  [used by maxmind]
        '01' => 'NW', // North-Western Province
    ],
    'ZM' => [
        '01' => '01',
        '02' => '02',
        '03' => '03',
        '04' => '04',
        '05' => '05',
        '06' => '06',
        '07' => '07',
        '08' => '08',
        '09' => '09',
    ],
    'ZW' => [
        '01' => 'MA',
        '02' => 'MI',
        '03' => 'MC',
        '04' => 'ME',
        '05' => 'MW',
        '06' => 'MN',
        '07' => 'MS',
        '08' => 'MV',
        '09' => 'BU',
        '10' => 'HA',
    ],
];